Wie behandeln try-catch-block in unit-Tests?
Möchte ich schreiben unit-test für die try-catch-Blockes(C#).
Public ActionResult Index()
{
try
{
-------------
}
catch(Exception ex)
{
throw;
}
}
Wie Sie sehen können, bin ich mit try-catch-block in meine index-Methode im controller.Und während unit-Test-diese Methode, die ich abdecken möchten try-catch-block auch.Wo in den catch-block, die ich bin werfen die Ausnahme.Aber ich habe keine Ahnung davon.Kann mir jemand empfehlen, der beste Weg, zu behandeln try-catch-block ? FYI,ich bin keine Angabe keine Ausnahme hier,es wile feuern/werfen keine Ausnahme.
Warum sind Sie die exception zu fangen, nur um rethrow? Warum nicht einfach die
Wenn du nicht gehst, um die Ausnahme behandeln, ej: NetworkException, bitten Sie den Benutzer, stecken Sie das Netzwerk-Draht; lassen Sie es sprudeln.
try/catch
entfernt und unit-test-das unerwartete VerhaltenWenn du nicht gehst, um die Ausnahme behandeln, ej: NetworkException, bitten Sie den Benutzer, stecken Sie das Netzwerk-Draht; lassen Sie es sprudeln.
InformationsquelleAutor Pawan | 2014-04-14
Du musst angemeldet sein, um einen Kommentar abzugeben.
Überprüfen Sie die ExpectedExceptionAttribute, die Teil des Frameworks.
http://msdn.microsoft.com/en-us/library/microsoft.visualstudio.testtools.unittesting.expectedexceptionattribute.aspx
Ein Beispiel, genommen aus dem link:
Hier sind Sie, dass eine division durch 0, was wissen Sie, es ist zum scheitern verurteilt und throw und Ausnahme.
Wenn Sie wurden fangen, die Ausnahme-code, dann ist der test würde fehlschlagen, da keine Ausnahme woulg geworfen bekommen.
InformationsquelleAutor Nahuel Ianni
Ihre catch-block ist heute nur wieder das werfen der Ausnahme. Es ist keine wirkliche business-Logik wie der status ändern oder hinzufügen von Fehler-codes oder etwas anderes, das muß getestet werden. Ich denke, dass testen nur die "try-catch-block" und "throw" - Funktion, die Schiffe mit der Plattform ist ein overkill.
InformationsquelleAutor Amol
Kommt es auf den unit-Test-framework verwendet wird. Die frameworks mit denen ich gearbeitet habe, bieten Sie einen Mechanismus für die überprüfung, ob eine Ausnahme geworfen wurde oder nicht, indem das zu testende system. Im folgenden sind einige frameworks und der zugehörigen Ausnahme-Funktionalität testen.
Microsoft Unit-Tests
ExpectedExceptionAttributeClass
xUnit.net
Wie verwende ich xUnit.net?
Werfen Sie einen Blick auf die Was ist, wenn ich Voraussichtlich eine Ausnahme? Abschnitt.
Darüber hinaus xUnit.net bietet eine nicht-typisierte Behauptung Methode für das testen von exceptions geworfen.
InformationsquelleAutor Ryan V