async void
单元测试不能在Visual Studio 2012中运行:
[TestClass]
public class MyTestClass
{
[TestMethod]
public async void InvisibleMyTestMethod()
{
await Task.Delay(1000);
Assert.IsTrue(true);
}
}
如果要进行异步单元测试,则测试方法必须返回Task:
[TestMethod]
public async Task VisibleMyTestMethod()
{
await Task.Delay(1000);
Assert.IsTrue(true);
}
为什么会这样呢?并不是说我绝对需要一种async void
测试方法,我只是很好奇。async void
即使无法运行,Visual Studio 2012在构建测试方法时也不会发出警告或错误。
async void
测试,并且在此链接中在某种程度上详细说明了支持它的方式和原因。请参阅下面的答案。