有人有在Windows 8 Metro应用程序中单元测试异步方法的示例吗?以确保它抛出所需的异常?
给定一个具有异步方法的类。
public static class AsyncMathsStatic
{
private const int DELAY = 500;
public static async Task<int> Divide(int A, int B)
{
await Task.Delay(DELAY);
if (B == 0)
throw new DivideByZeroException();
else
return A / B;
}
}
我想使用新的Async.ExpectsException结构编写测试方法。我已经尝试过:-
[TestMethod]
public void DivideTest1()
{
Assert.ThrowsException<DivideByZeroException>(async () => { int Result = await AsyncMathsStatic.Divide(4, 0); });
}
但是测试当然不会等待异步方法完成,因此导致测试失败,即异常没有被抛出。
async
兼容的ThrowsException
,如果Win8单元测试不支持它的话。 - Stephen Cleary