我刚刚与我的首席开发人员进行了一次对话,他们不同意单元测试是必要的或重要的。在他看来,具有足够高代码覆盖率的功能测试应该足够了,因为任何内部重构(接口更改等)都不会导致需要重新编写或重新查看测试。为什么功能测试不够?单元测试提供什么?
我试着解释,但并没有走得很远,并认为你们可以做得更好。 ;-)因此...
功能测试不提供单元测试代码有什么好的理由?如果您所有的功能测试都有什么危险?
编辑#1感谢您的所有好的答案。我想通过功能测试补充说,我并不是说只对整个产品进行测试,而是对产品中的模块进行测试,而不是对单元测试的低级别进行测试,如果有必要的话,嘲讽等。我们的功能测试是自动的,并且持续运行,但它们只比单元测试花费更长的时间(这是单元测试的一大优点)。
我喜欢砖与房子的例子。我猜我的主要开发者被说是测试房子的墙壁就足够了,不需要测试单个砖... :-)
关于砖的例子:砖是大规模生产的,它们都是一样的,这与功能或单位不同。 – philant 2008-10-13 19:24:48
好点@支架。不知道我同意你的主要开发人员。正如在评论中提到的那样,软件单元/模块并非完全相同,并且由于各种答案中提到的所有原因,单独进行单元测试是非常重要和有用的。 – Sid 2015-04-26 15:42:19