我和一位同事正在开始一个新项目,并试图充分利用 TDD。我们仍在弄清楚有关单元测试的所有概念,到目前为止,它们主要基于其他示例。
我的同事最近质疑 NUnit 语法助手的意义,我正在努力解释它们的好处(因为我自己并不真正理解它,只是我的直觉说它们很好!)。这是一个示例断言:
Assert.That(product.IsValid(), Is.False);
对我来说这是完全有道理的,我们是说我们期望 product.IsValid()
的值为 false
。另一方面,我的同事希望我们简单地写:
Assert.That(!product.IsValid());
他对他说这更有意义,他可以更轻松地阅读它。
到目前为止,我们唯一可以达成一致的是,当前者的测试失败时,您可能会得到更有帮助的输出,但我认为必须有更好的解释。我查阅了一些关于语法帮助程序 ( http://nunit.com/blogs/?p=44 ) 的信息,它们很有道理,但我并不完全理解约束的概念,只是它们“感觉”正确。
我想知道是否有人可以解释为什么我们使用约束的概念,以及为什么他们改进上面的单元测试示例?
谢谢。
最佳答案
我认为这主要与声明的纯英文阅读有关。
第一次阅读
Assert that product is valid is false
二读
Assert that not product is valid
我个人觉得第一个更容易处理。我认为这完全取决于偏好。尽管有一些扩展方法很有趣,但它们可以让您像这样进行断言:
product.IsValid().IsFalse();
关于unit-testing - 了解单元测试约束和 NUnit 语法助手,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/610001/