- 测试依赖外部服务(如数据库或API)可能导致测试失败,因为服务可能不可用或不稳定。
- 使用模拟或存根来隔离测试,以避免对外部服务的依赖。
2. 缺乏断言
- 测试用例没有断言会导致测试失败,因为没有验证预期的行为。
- 在每个测试用例中包含断言,以明确预期结果。
3. 使用过宽泛的断言
- 使用过于宽泛的断言(如
assertTrue()
)可能隐藏实际失败。 - 使用特定断言(如
assertEquals()
)来精确验证预期值。
4. 过度测试
- 测试用例太多可能会使维护和调试变得复杂。
- 专注于测试关键功能和边界情况,而不是过度测试。
5. 忽略异常
- 没有捕获或处理测试用例中的异常会导致测试失败。
- 使用
try-catch
块来捕获和验证异常。
6. 没有使用 tearDown() 方法
tearDown()
方法用于清理测试环境,例如删除临时文件或重置数据库。- 使用
tearDown()
方法来确保每个测试用例运行时环境一致。
7. 测试私有方法
- 默认情况下,PHPUnit 无法测试私有方法。
- 使用
@method
注解或扩展 PHPUnit 来模拟私有方法的调用。
8. 使用过期的依赖项
- 过期的依赖项会导致测试失败。
- 定期更新依赖项,并使用版本控制工具来跟踪更改。
9. 忽略代码覆盖率
- 低代码覆盖率表明测试未涵盖足够的代码路径。
- 使用代码覆盖率工具来识别未测试的代码,并改进测试覆盖率。
10. 没有使用 Mocking
- 嘲笑允许模拟对象的行为,从而隔离测试。
- 使用模拟来避免对实际对象或功能的依赖,提高测试的灵活性。