编写异步测试
来源:广州中睿信息技术有限公司官网
发布时间:2012/10/21 23:25:16 编辑:editor 阅读 1067
在Silverlight里做集成测试很难。几乎任何类型的外部服务都需要一个返回UI线程的异步调用。和大多数单元测试框架不同,Silverlight使用的那个单元测试框架运行在相同线程上,因此你不能阻

  在Silverlight里做集成测试很难。几乎任何类型的外部服务都需要一个返回UI线程的异步调用。和大多数单元测试框架不同,Silverlight使用的那个单元测试框架运行在相同线程上,因此你不能阻止它等待服务调用的返回。

  更糟糕的是,事实上这个Silverlight测试框架(简称Silverlight Unit Testing Framework)非常容易出错。任何线程的未处理异常都会破坏整个测试的运行,而前面提到的集成测试却需要使用多线程。

  一个解决方案是始终通过EnqueueCallback确保异常恰当地报告给单元测试框架。但是,这也不是那么好做的,只要一个错误就能中断接下来的所有测试。Richard Szalay示范了如何使用Reactive Extensions强化异步测试,同时降低出错率。

  Richard使用的技术假设你通过传统的Begin和End两个方法使用异步模式。使用Observable.FromAsyncPattern函数把服务的调用封装到一个IObservable里。一旦完成,ObserveOnTest函数就会通过一个叫做WorkItemTestScheduler的特殊计划程序把单元测试框架关联到调用链上。最后调用Subscribe函数启动序列并计算结果。

  查看英文原文:Writing Asynchronous Tests with Rx and Silverlight

联系我们CONTACT 扫一扫
愿景:成为最专业的软件研发服务领航者
中睿信息技术有限公司 广州•深圳 Tel:020-38931912 务实 Pragmatic
广州:广州市天河区翰景路1号金星大厦18层中睿信息 Fax:020-38931912 专业 Professional
深圳:深圳市福田区车公庙有色金属大厦509~510 Tel:0755-25855012 诚信 Integrity
所有权声明:PMI, PMP, Project Management Professional, PMI-ACP, PMI-PBA和PMBOK是项目管理协会(Project Management Institute, Inc.)的注册标志。
版权所有:广州中睿信息技术有限公司 粤ICP备13082838号-2