async void
Unit-Tests können in Visual Studio 2012 nicht ausgeführt werden:
[TestClass]
public class MyTestClass
{
[TestMethod]
public async void InvisibleMyTestMethod()
{
await Task.Delay(1000);
Assert.IsTrue(true);
}
}
Wenn ich einen asynchronen Komponententest durchführen möchte, muss die Testmethode eine Aufgabe zurückgeben:
[TestMethod]
public async Task VisibleMyTestMethod()
{
await Task.Delay(1000);
Assert.IsTrue(true);
}
Wieso ist es so? Nicht dass ich unbedingt eine async void
Testmethode brauche , ich bin nur neugierig. Visual Studio 2012 gibt keine Warnung oder Fehler aus, wenn Sie eine async void
Testmethode erstellen , obwohl diese nicht ausgeführt werden kann ...
async void
Tests und wie und warum es unterstützt wird, wird in diesem Link ausführlich beschrieben . Siehe Antwort unten.