How can I display more info in an error message wh

2020-08-10 06:26发布

问题:

Consider the following code:

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

If one of the asserts fails, I will get a very unhelpful error message like the one below:

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

at WidgetTest.TestSomeValue()

So, the question is, how can I get NUnit to display more useful info, such as the name of the widget, or the iteration of the loop, etc? Even a line number would be more helpful, since this is run in automated manner and I'd like to be able to spot the failing assert without debugging into the code.

回答1:

You can use the overload which takes a message as well:

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