Was ich gerne wissen möchte, ist, wie ich behaupten kann, dass eine asynchrone Methode in einem C # Unit Test eine Ausnahme auslöst? Ich bin in der Lage, asynchrone Komponententests mit Microsoft.VisualStudio.TestTools.UnitTesting
in Visual Studio 2012 zu schreiben, habe aber nicht herausgefunden, wie man auf Ausnahmen prüft. Ich weiß, dass xUnit.net auf diese Weise auch asynchrone Testmethoden unterstützt, obwohl ich dieses Framework noch nicht ausprobiert habe.
Als Beispiel für das, was ich meine, definiert der folgende Code das zu testende System:
%Vor% Dieses Code-Snippet definiert einen Test TestGetIntAsync
für AsyncClass.GetIntAsync
. Dies ist der Punkt, an dem ich eine Eingabe benötige, um festzustellen, ob GetIntAsync
eine Ausnahme auslöst:
Fühlen Sie sich frei, ein anderes relevantes Unit-Test-Framework als das Visual Studio-Framework zu verwenden, wie zum Beispiel xUnit.net, oder Sie würden argumentieren, dass es eine bessere Option ist.
Die erste Option wäre:
%Vor%Die zweite Option wäre die Verwendung des Expected Exception-Attributs:
%Vor%Die dritte Option wäre die Assert.Throws:
%Vor%Tags und Links c# unit-testing async-await .net-4.5 exception