用途:这是一份测试反模式指南,用于在编写或修改测试、添加 mock,或想在生产代码中加入仅测试用方法时,提醒开发者避免常见错误。核心原则是:测试必须验证真实行为,而不是 mock 行为;mock 只是隔离手段,不是被测对象。
主要能力:列出五类反模式及修复方式。一、测试 mock 行为:断言 mock 元素是否存在,应改为测试真实组件或取消 mock。二、生产代码中的仅测试方法:如只在测试中调用的 destroy(),应移到测试工具中。三、未理解依赖就 mock:mock 掉测试所依赖的副作用会导致测试错误通过,应先理解依赖链,在正确层级最小化 mock。四、不完整的 mock:只 mock 部分字段会掩盖结构假设,应完整镜像真实 API 返回结构。五、把集成测试当后补:测试是实现的组成部分,应遵循 TDD 先写失败测试。
使用方式:文中给出若干“门槛函数”,在断言 mock 元素、向生产类添加方法、mock 方法、创建 mock 响应前先自问,判断是否在测试 mock 存在性、方法是否仅测试使用、是否理解副作用与依赖、mock 是否完整。若 mock 设置比测试逻辑还长、移除 mock 后测试失败、无法解释为何需要 mock,应重新考虑是否使用集成测试。
适用场景与限制:适合使用 mock 的单元测试与 TDD 流程,尤其涉及组件渲染、会话清理、配置写入、API 响应等场景。资料未提供具体语言、框架版本、安装命令或平台限制,需结合项目实际判断。