2010-06-14 11 views
8

Considere el siguiente código:¿Cómo puedo mostrar más información en un mensaje de error cuando uso NUnit Assert en un bucle?

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

Si uno de los afirma falla, aparecerá un mensaje de error muy poco útil como la siguiente:

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

at WidgetTest.TestSomeValue() 

Entonces, la pregunta es, ¿cómo puedo obtener NUnit para mostrar información más útil, como el nombre del widget, o la iteración del bucle, etc. Incluso un número de línea sería más útil, ya que se ejecuta de manera automática y me gustaría poder detectar la afirmación anómala sin depurar el código.

Respuesta

13

Puede utilizar la sobrecarga que tiene un mensaje así:

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

Sería bueno si hubiera una forma de decorar se genera de forma automática el mensaje-, en lugar de tener que escribir sus propios desde cero. – eddiewould

Cuestiones relacionadas