在循环中使用NUnit Assert时,如何在错误消息中显示更多信息?

时间:2010-06-14 16:02:01

标签: c# unit-testing nunit assert

请考虑以下代码:

[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 个答案:

答案 0 :(得分:13)

您也可以使用带有消息的重载:

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