Nunit 中的经典模型断言和约束模型断言有什么区别?

What is the difference between Classic and Constraint Model Assertions in Nunit?

我正在通过阅读文档学习 Nunit-2.6.3。我对此有一些疑问。

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

哪种断言模型最好,为什么?

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

Assert.AreEqual("expected", someString);

和(约束)

Assert.That(someString, Is.EqualTo("expected"));

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

其他人认为基于约束的方法更接近于您向其他人解释约束时可能会说出约束的方式。

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

不过,您应该了解经典断言,因为您遇到代码的不同地方很可能会根据它们最先使用的内容来使用其中之一。

虽然语法不同,但它们的作用非常相似,因此如果您了解一组断言,来回转换它们就非常简单。