有没有人举例说明如何在 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); });
}
但是当然测试不会等待异步方法完成,因此会导致测试失败,即没有引发异常。