2010-06-14 6 views
8

Betrachten Sie den folgenden Code ein:Wie kann ich bei Verwendung von NUnit Assert in einer Schleife mehr Informationen in einer Fehlermeldung anzeigen?

[Test] 
public void WidgetTest() 
{ 
    foreach (Widget widget in widgets) 
    { 
     Assert.AreEqual(0, widget.SomeValue); 
    } 
} 

Wenn einer der nicht behauptet, ich werde eine sehr hilfreich Fehlermeldung wie die unten erhalten:

So
1) Test Failure : WidgetTest.TestSomeValue 
    Expected: 0 
    But was: 1 

at WidgetTest.TestSomeValue() 

, die Frage ist, wie kann ich NUnit erhalten, um nützlichere Informationen wie den Namen des Widgets oder die Iteration der Schleife usw. anzuzeigen? Sogar eine Zeilennummer wäre hilfreicher, da dies automatisiert abläuft und ich die fehlgeschlagene Assertion ohne Debugging im Code erkennen könnte.

Antwort

13

Sie können die Überlastung benutzen, die auch eine Nachricht nimmt:

Assert.AreEqual(0, widget.SomeValue, 
       "Widget " + widget + " should have SomeValue of 0"); 
+1

Es wäre schön, wenn es eine Möglichkeit gäbe er automatisch generierte Nachricht zu dekorieren, anstatt Ihre eigenen von Grund auf neu zu schreiben. – eddiewould

Verwandte Themen