我们公司有5名开发人员和1名测试人员,现在我们用Jersey、Spring boot和Spring data jpa等构建了一个平台。当我们讨论如何用Mockito、Junit4建立测试框架时,很多声音都来了。有这些方法:
- 编写用于测试资源、服务和存储库的单元测试
- 只需编写访问数据库的集成测试用例,即可启用JTA事务并确保代码的正确性
- 将它们结合起来,但如何做到这一点是个大问题
谁能帮我做这个决定?
平衡努力和降低风险
你想写你的测试,这样你就可以在给定的努力中最大限度地降低失败风险。大致来说:
故障风险高
- 代码中的逻辑很复杂
- 代码设计复杂的地方(例如,许多调用方)
- 使用复杂技术的地方,而你只能大致了解
- 其中频繁地或将频繁地执行改变
作用力低
- 单元测试可以直接编写(例如,不用嘲讽)
- 代码不保持状态
- 其中集成测试锻炼了您的许多功能
您应该在这两个领域重叠的地方进行测试。并设计您的代码,使这种重叠形成一个大的区域。我在这里简化了很多,但你的建议这个问题更加简单。小心任何一刀切的答案。
问题"我应该写这个测试吗?"实际上是"这里可能出了什么问题?","测试能让我降低多少风险?",以及"这会为实施测试付出代价吗?"。当然,你永远都不知道确切的答案,但即使是粗略的估计也往往是明智的决策指南对于可能的测试a或针对可能的测试B,特别是在A和B的直接比较中。