为silverlight创建单元测试时,测试框架似乎内置了一些功能以帮助进行异步调用,但仅限于测试方法内。如果在你正在呼叫的那个子方法中有一个异步调用,该怎么办?Silverlight单元测试,处理嵌套方法中的异步调用
作为一个例子,我们使用Specflow来测试我们的ViewModels,我们要调用一个命令的Execute方法,然后该命令异步调用Web服务。在声明结果之前,如何确保while命令完成?
作为一个例子,这是命令
[Asynchronous]
[When(@"I press calculate")]
public void WhenIPressCalculate()
{
_helloWorldViewModel.CalculateCommand.Execute(null);
}
我需要等待整个命令完成后再继续。
如果异步调用与WCF服务相关,则可以创建一个模拟服务,该服务在方法调用中没有延迟。这是更好的方法,因为单元测试不需要很多时间来完成。 – vorrtex 2011-05-04 16:33:02
我们实际上正在测试功能块(行为驱动开发),所以我们称之为真正的服务是很好的。这样我们可以确保该功能完整。 – Nitro52 2011-05-04 23:53:33