Nunit中Classic和Constraint Model Assertions有什么区别?

Sur*_*Ram 2 nunit unit-testing assert assertion

我正在通过阅读文档来学习Nunit-2.6.3.我有点怀疑.

经典模型和约束模型断言之间有什么区别?

断言的哪种模式是最好的,为什么?

for*_*rir 6

主要区别在于语法.这是(经典)之间的区别:

Assert.AreEqual("expected", someString);
Run Code Online (Sandbox Code Playgroud)

和(约束)

Assert.That(someString, Is.EqualTo("expected"));
Run Code Online (Sandbox Code Playgroud)

经典模式已经存在更长时间,有些人认为它更明确,更容易理解.

其他人认为基于约束的方法更接近你可能会说约束的方式,如果你向其他人解释它.

如果你刚刚开始,那么可能基于约束的断言是更好的学习,因为它们是NUnit似乎试图进入的方向.它们也更接近于FluentAssertions.基于约束的断言还通过使用IResolveConstraint接口更明确地支持扩展.

但是,您应该可以了解经典断言,因为您遇到代码的不同位置很可能会根据他们先使用的内容使用.

虽然语法不同,但他们所做的非常相似,所以如果你理解了一组断言,那么来回转换它们就非常简单了.