MarsCode单元测试提示词如何避免一眼模板感
来源:互联网
时间:2026-06-17 13:38:05
用Jest写函数calculateTotal的单元测试,参数为number[],返回number。只测三个用例:[1,2]→3、[-1,-2]→-3、[]→0。不写describe,不写test.only,不加中文注释。

用MarsCode生成单元测试时,提示词一写“请为这个函数写一个单元测试”,AI立刻输出带注释、带描述、带setup/teardown的完整模板——但你的项目里根本不用Jest.describe,也不允许测试文件里出现中文注释,更不接受返回空对象而非抛错的容错逻辑。
删掉所有“请”字开头的礼貌句式
把“请为calculateTotal编写一个Jest单元测试,覆盖正数、负数和零三种情况”直接改成:
【用Jest写函数calculateTotal的单元测试,参数为number[],返回number。只测三个用例:[1,2]→3、[-1,-2]→-3、[]→0。不写describe,不写test.only,不加中文注释】
这一步必须做。MarsCode看到“请”就激活对话模式,自动补全引导语、结构说明和安全兜底,这些全是后续手动删除的噪音。
绑定你正在编辑的真实代码上下文
方法一
export function calculateTotal(items: number[]): number {
if (items.length === 0) return 0;
return items.reduce((a, b) => a + b, 0);
}
在此基础上,生成Jest测试文件math.test.ts,要求:断言全部用toBe,不mock任何模块,覆盖空数组、单元素、多元素三类输入。
方法二
TypeError: Cannot read property 'length' of undefined,那就写:【上一步调用calculateTotal(undefined)崩溃了。请补一个测试用例验证该输入,并让函数内部加非空判断,返回0】
【不粘上下文=生成通用模板;粘错上下文=生成不可用代码】
强制禁用三类AI惯性表达
第一步
console.log或process.exit。
第二步
expect必须用链式调用,如expect(calculateTotal([1,2])).toBe(3),不接受expect(calculateTotal([1,2])).toEqual(3)。
第三步
math.test.ts文件的完整内容,无空行、无语言标识符、无markdown包围,首行必须是import { describe, it, expect } from '@jest/globals';。