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 void
metody testowej, jestem po prostu ciekawy. Program Visual Studio 2012 nie wyświetla żadnego ostrzeżenia ani błędu podczas tworzenia async void
metody testowej, mimo że nie będzie można jej uruchomić ...
async void
testy, a informacje o tym, jak i dlaczego je wspierać, są w pewnym stopniu opisane w tym linku . Zobacz odpowiedź poniżej.