C# 异步调用的单元测试

在异步编程进行单元调试的时候,由于主线程在反馈之前就可能会执行完毕,导致还未接受到反馈整个执行域就销毁了。需要阻塞当前线程,等待异步反馈完成。

一个简单的办法如下:

  [TestMethod]
        public void TestAsynResponse()
        {
            OdaLibSeiviceCommand.Instance.GetBaidu( ( obj, e ) =>
            {
                using ( e.Result )
                {
                    using ( StreamReader sr = new StreamReader( e.Result ) )
                    {
                        Assert.IsNotNull( sr.ReadToEnd().Length > 0 );
                        sr.Close();
                    }
                    e.Result.Close();
                }
                i++;
            } );
            WatiCallback();

        }
        private void WatiCallback()
        {
            while ( i == 0 )
            {
                System.Threading.Thread.Sleep( 1000 );
            }
        }

        private int i = 0;

 

posted on 2013-08-14 13:06  而立未立  阅读(886)  评论(0编辑  收藏  举报