Как я могу отобразить больше информации в сообщении об ошибке при использовании NUnit Assert в цикле? - PullRequest
10 голосов
/ 14 июня 2010

Рассмотрим следующий код:

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

В случае сбоя одного из подтверждений я получу очень бесполезное сообщение об ошибке, подобное приведенному ниже:

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

at WidgetTest.TestSomeValue()

Итак, вопрос в том, как заставить NUnit отображать более полезную информацию, такую ​​как имя виджета, или итерацию цикла и т. Д.? Даже номер строки был бы более полезным, так как он запускается автоматически, и я хотел бы иметь возможность определить ошибочное утверждение без отладки в коде.

1 Ответ

14 голосов
/ 14 июня 2010

Вы можете использовать перегрузку, которая также принимает сообщение:

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