【发布时间】:2012-10-01 23:22:41
【问题描述】:
有没有人举例说明如何在 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 方法完成,因此会导致未引发异常的测试失败。
【问题讨论】:
标签: c# unit-testing async-await