SuperAPI AI 工具集

principle-test-behavior-not-implementation

测试与质量

查看项目

更新于 10-16 00:22

技能介绍

用途:这是一条测试编写原则,适用于新增、修改或保留测试时。核心是让测试像用户一样调用被测代码,并断言其看到的确切结果;若每个被导入函数都返回 undefined 或错误值,测试仍会通过,就应重写或删除该测试。

主要能力:识别并纠正无效测试形态。资料列出的典型问题包括:模糊或无断言(toBeDefined、toBeTruthy、not.toThrow、toBeGreaterThan(0));只验证调用或缺失(toHaveBeenCalled、not.toHaveBeenCalled、toBeUndefined、toEqual([]));期望值由被测代码计算(expect(f(a)).toBe(f(a)));复述常量、配置默认值、表格行或提示字符串;仅断言测试自建数据而未调用被测对象。

使用方式:在测试主体中用具体输入调用被测对象,断言字面输出或效果。对 mock,断言其收到的载荷;对缺失行为,同时在另一个输入上断言存在;对常量,改为测试读取该常量的机制,而不是复述值。保留跨表格行的关系检查(如两张表中的键、存在的父项)以及 *.test-d.ts 类型检查。

生产前置条件:验收测试不应因测试建立的生产环境从不建立的初始状态或顺序而通过;应走真实初始化路径,或证明调用方提供了该前置条件;真实调用方可提供的普通 fixture 输入有效。

限制:这是写作规范而非运行时。Given/When/Then 或 Gherkin 风格测试使用项目已有框架编写;除非项目已运行 Cucumber、Gherkin runner 或 .feature 文件,或用户明确要求它们,否则不要添加;要求 Gherkin 风格测试不等于要求 Cucumber 或 runner。