Wie kann ich feststellen, dass eine C # -Assync-Methode in einem Komponententest eine Ausnahme auslöst? [Duplikat]

8

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:

%Vor%

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.

    
aknuds1 03.09.2012, 13:17
quelle

4 Antworten

9

Bitte markieren Sie die Methode mit:

%Vor%     
petro.sidlovskyy 03.09.2012, 13:21
quelle
6

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%     
CloudyMarble 03.09.2012 13:22
quelle
2
%Vor%     
Dmytro 03.09.2012 13:23
quelle
0

Versuchen Sie es mit TPL:

%Vor%     
abatishchev 03.09.2012 13:26
quelle