async void testów jednostkowych nie można uruchomić w programie Visual Studio 2012:
[TestClass]
public class MyTestClass
{
[TestMethod]
public async void InvisibleMyTestMethod()
{
await Task.Delay(1000);
Assert.IsTrue(true);
}
}
Jeśli chcę mieć asynchroniczny test jednostkowy, metoda testowa musi zwrócić Task:
[TestMethod]
public async Task VisibleMyTestMethod()
{
await Task.Delay(1000);
Assert.IsTrue(true);
}
Dlaczego tak się dzieje? Nie to, żebym absolutnie potrzebował async voidmetody testowej, jestem po prostu ciekawy. Program Visual Studio 2012 nie wyświetla żadnego ostrzeżenia ani błędu podczas tworzenia async voidmetody testowej, mimo że nie będzie można jej uruchomić ...
async voidtesty, a informacje o tym, jak i dlaczego je wspierać, są w pewnym stopniu opisane w tym linku . Zobacz odpowiedź poniżej.