3

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

警告 CS0618:“NUnit.Framework.Assertion”已过时:“改用 Assert 类”

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

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

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

Assert 类的等效方法是什么?

4

4 回答 4

8

Jon Skeet提出的答案指向所谓的“经典”模型,而John Gietzen 的答案是指“基于约束”的模型。两者都是正确的,并且都提供了在失败的情况下传递消息的可能性。

所以让我总结一下:

“经典”模型

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");

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

于 2009-09-16T13:07:06.847 回答
5

这个怎么样:

Assert.AreEqual(1, pq.Count,
                "Enqueuing first item should set count to 1");
于 2009-09-16T12:58:41.483 回答
4
Assert.That(a, Is.EqualTo(b),
    "Enqueuing first item should set count to 1");
于 2009-09-16T12:54:03.707 回答
0

做一个完整的正则表达式替换:

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

应替换为:

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

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

应替换为:

Assert.That(\2, \1)
于 2011-05-27T11:31:29.607 回答