我正在编写一些超级简单的异步代码。只需将文件保存在线程外。
我想使用Microsoft Visual Studio Team System 2008中的MSTest单元测试框架来测试此代码。
我该怎么做?
我想简单地阻止测试方法,直到方法返回。我可以想象一些方法来做到这一点,但我很震惊,没有任何最佳实践或帮助类围绕这一点。
我看到很多的Silverlight,但没有通用的。
答案 0 :(得分:120)
Visual Studio 2012(以前称为“Visual Studio 11”)introduced support for async tests。它看起来像这样:
[TestMethod]
public async Task FooTest()
{
var result = await SomeAsyncOperation();
Assert.IsTrue(someCondition);
}
如评论中所述, Task
返回类型非常重要。如果将方法声明为返回void
。
答案 1 :(得分:0)
不要直接调用System.IO方法,而是尝试使用SystemWrapper库。然后在测试中,您可以根据需要模拟调用,返回测试中的任何内容,包括错误条件,并验证您的逻辑是否按预期工作。
如果您想查看示例,请查看this blog post,了解如何与RhinoMocks一起使用。