单元测试 – 您如何判断您的单元测试是否正确?

我在职业生涯的各个方面都做过小单位测试。每当我再次开始潜水,总是会让我如何证明我的测试是正确的。我怎么知道我的单元测试中没有错误?通常我最终运行应用程序,证明它是有效的,然后使用单元测试作为一种回归测试。建议的方法是什么和/或您对此问题采取的方法

编辑:我也意识到你可以编写一些很容易理解的小型,细粒度的单元测试。但是,如果您认为小巧细腻的代码是完美无缺的,那么您只需编写小而精细的程序,而不需要单元测试。

编辑2:对于“单元测试是为了确保你的更改不会破坏任何东西”的参数,“这只会在测试与代码有完全相同的缺陷的情况下才会发生”,如果测试过得如此呢?通过坏测试可以传递好的和坏的代码。我的主要问题是单元测试有什么好处,因为如果您的测试有缺陷,您无法真正提高您对代码的信心,无法真正证明您的重构工作正常,并不能真正证明您符合规范?

单位测试应表达您正在测试的“合同”。它或多或少是放在代码中的单元的规格。因此,根据规范,单位测试是否“正确”应该是或多或少的明显。

但我不用担心单元测试的“正确性”。它们是软件的一部分,因此它们也可能不正确。单位测试的点 – 从我的POV – 是他们确保您的软件的“合同”不会被意外破坏。这就是使单元测试如此有价值:您可以在软件中挖掘,重构一些零件,更改其他零件的算法,并且您的单元测试会告诉您,如果您打破任何东西。即使不正确的单元测试也会告诉你。

如果您的单元测试有错误,您会发现 – 因为单元测试失败,而测试代码证明是正确的。那么,修复单元测试。没什么大不了。

相关文章

迭代器模式(Iterator)迭代器模式(Iterator)[Cursor]意图...
高性能IO模型浅析服务器端编程经常需要构造高性能的IO模型,...
策略模式(Strategy)策略模式(Strategy)[Policy]意图:定...
访问者模式(Visitor)访问者模式(Visitor)意图:表示一个...
命令模式(Command)命令模式(Command)[Action/Transactio...
生成器模式(Builder)生成器模式(Builder)意图:将一个对...