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 メソッドが完了するのを待たないため、例外がスローされていないという失敗したテストになります。