【问题标题】:How can I display more info in an error message when using NUnit Assert in a loop?在循环中使用 NUnit Assert 时,如何在错误消息中显示更多信息?
【发布时间】:2010-06-14 16:02:01
【问题描述】:

考虑以下代码:

[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 显示更多有用的信息,例如小部件的名称,或者循环的迭代等?即使是行号也会更有帮助,因为它是以自动方式运行的,我希望能够在不调试代码的情况下发现失败的断言。

【问题讨论】:

    标签: c# unit-testing nunit assert


    【解决方案1】:

    您也可以使用接收消息的重载:

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

    【讨论】:

    • 如果有一种方法可以装饰他自动生成的消息,而不必从头开始编写自己的消息,那就太好了。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-01-16
    • 2020-02-07
    • 1970-01-01
    相关资源
    最近更新 更多