什么是Assertion.AssertEquals的“升级路径”?

时间:2009-09-16 12:53:08

标签: .net nunit assertions

我继承了一些单元测试代码,它给了我一个弃用警告,因为它使用了“Assertion.AssertEquals”:

警告CS0618:'NUnit.Framework.Assertion'已过时:'使用Assert类代替'

但是,我不能在Assert类中看到我应该使用的明显方法吗?

AssertEquals接受两个对象和一条消息,如果出现故障,可以使用该消息报告错误。 e.g。

        Assertion.AssertEquals(
             "Enqueuing first item should set count to 1",
             1, pq.Count);

Assert类的等效方法是什么?

4 个答案:

答案 0 :(得分:8)

答案Jon Skeet表示所谓的“经典”模型,而John Gietzen's答案指的是“基于约束”模型。两者都是正确的,两者都提供了为失败案件传递信息的可能性。

所以让我总结一下:

“经典”型号

Assert.AreEqual(1, pq.Count,
    "Enqueuing first item should set count to 1");

“基于约束”模型

Assert.That(
    pq.Count,
    Is.EqualTo(1),
    "Enqueuing first item should set count to 1");

我更喜欢后者,因为它更像是一个句子。

答案 1 :(得分:5)

这个怎么样:

Assert.AreEqual(1, pq.Count,
                "Enqueuing first item should set count to 1");

答案 2 :(得分:4)

Assert.That(a, Is.EqualTo(b),
    "Enqueuing first item should set count to 1");

答案 3 :(得分:0)

完整的正则表达式替换:

Assertion\.AssertEquals(\(.*\),\(.*\),\(.*\))

应替换为:

Assert.That(\2, \1, \0)

Assertion.Assert(\(.*\),\(.*\))

应替换为:

Assert.That(\2, \1)