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では、実行できない場合でも、テスト メソッドをビルドするときに警告もエラーも発生しません...