在你跳到答案之前,让我们定义我的意思(注意你可能有不同的定义,这是问题的一部分,但这是我正在使用的)
模拟测试又名基于行为的测试——测试代码是否正确,即测试验证行为。所有合作者都被嘲笑。
单元测试--- 专注于系统的一小部分(如类)的低级测试。当我们使用模拟测试时,协作者会被模拟。
集成测试---测试系统的两个或多个部分(如两个类)的交互。被测组件不会被模拟。
系统测试--- 将系统作为“黑匣子”进行测试,即从无权访问系统内部的用户的角度进行测试。使用真实组件(数据库、http 等)
我慢慢意识到,当以这种方式完成单元测试时,您可能不需要集成测试。
- 基于行为的单元测试应该验证组件之间是否正确通信
- 系统测试应该捕捉到使用真实组件的错误
当系统测试失败时,集成测试成为可选的故障排除工具(因为它们更细粒度)。(但是,您可能会争辩说,除了偶尔出现的边缘情况外,具有良好日志记录的系统测试就足够了。)
我错过了什么?
更新:“足够”是指这些单元测试+系统测试将捕获单元+集成+系统测试会发现的所有错误。
更新:“足够”是指单元+集成+系统测试会发现单元+系统测试找不到的错误吗?我真正在寻找的是一个显示集成测试是必要的示例。