你支持其中之一吗?或两者?
我的理解是单元测试:
- 从开发人员的角度验证系统
- 帮助开发者实践TDD
- 保持代码模块化
- 协助检测低粒度的错误
验收测试:
- 从业务和 QC/QA 角度验证系统
- 往往是高级别的,因为它们通常是由不熟悉代码内部工作原理的人编写的
我感觉两者都有必要。然而,为了最大限度地减少冗余工作,尝试将单元测试纳入验收测试是一个好主意吗?换句话说,让后者调用前者。朝相反的方向前进还有意义吗?
您对单元测试与验收测试的总体看法是什么,以及如何管理它们之间的关系?
验收和集成测试会告诉您代码是否有效且完整;单元测试会告诉你哪里失败了。
如果您在验收和集成测试方面做得很好,并且它们通过了,那么您的代码正在实现它应该实现的所有功能,并且它正在工作。很高兴知道这一点(也很高兴知道事实并非如此)。但如果它不起作用,验收测试不会让你深入了解哪里出了问题;由于它测试了许多功能单元,因此它可以是失败的鸟瞰图。这就是单元测试的亮点。好的单元测试可以准确地告诉您出了什么问题,以及代码的哪一部分。与验收测试相比,了解您是否编写了足够的单元测试更难,但是当您的验收测试失败而没有相应的失败单元测试时 - 是时候编写该单元测试了。
这都是从测试角度来看的。当然,TDD 不是(ATDD 也不是)测试。在推动设计方面,验收测试为您提供了一个广泛的路线图(“这就是您想去的地方”),而单元测试则将您带到下一个十字路口(“左转”)。它们在这方面都很有价值,而且它们的价值又是相辅相成的。
不要混淆它们;不要让他们混血。特别是单元测试不应该依赖于其他任何东西,并且通过使验收测试依赖于它们来限制单元测试将是错误的。当然他们可以共享一些框架代码,但是他们应该是独立的。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)