SuperAPI AI 工具集

testing-anti-patterns

测试与质量

查看项目

更新于 10-16 00:31

技能介绍

用途:用于编写或修改测试、添加 mock,或想在 production 代码中加入仅供测试的方法时,阻止测试 mock 行为、污染 production 代码等问题。核心原则是测试代码做了什么,而非 mock 做了什么;严格 TDD 可避免这些反模式。

三条铁律:绝不测试 mock 行为;绝不向 production 类添加仅测试用方法;绝不未理解依赖就 mock。

主要反模式与修正:1) 测试 mock 行为,如断言 sidebar-mock 存在,修正为渲染真实组件或不断言 mock。2) production 类加仅测试方法,如 destroy(),应移到测试工具。3) 未理解依赖就 mock,可能破坏测试依赖的副作用,应在正确层级 mock 并先跑真实实现。4) 不完整 mock,只 mock 已知字段导致下游静默失败,应按真实 API 完整结构 mock。5) 把集成测试当事后补,应遵循 TDD:先写失败测试、实现、重构。

当 mock 过于复杂(setup 比测试逻辑长、什么都 mock、缺少真实方法、改 mock 就挂)时,考虑使用真实组件的集成测试。TDD 之所以能防止这些反模式,是因为先写测试会迫使思考测试什么,看到失败能确认测的是真实行为,最小实现避免测试专用方法混入,真实依赖让你在 mock 前看清测试需要。

危险信号:断言 *-mock 测试 ID;方法只在测试文件调用;mock 占测试 50% 以上;去掉 mock 测试就失败;无法解释为何需要 mock;为安全而 mock。

限制:资料未提供安装命令、平台、收费或价格等信息;也未给出具体框架版本或完整代码示例。