用Jest写函数calculateTotal的单元测试,参数为number[],返回number。只测三个用例:[1,2]→3、[-1,-2]→-3、[]→0。不写describe,不写test.only,不加中文注释。
☞☞☞AI 智能聊天, 问答助手, AI 智能搜索, 多模态理解力帮你轻松跨越从0到1的创作门槛☜☜☜
用marscode生成单元测试时,提示词一写“请为这个函数写一个单元测试”,ai立刻输出带注释、带描述、带setup/teardown的完整模板——但你的项目里根本不用jest.describe,也不允许测试文件里出现中文注释,更不接受返回空对象而非抛错的容错逻辑。删掉所有“请”字开头的礼貌句式
把“请为calculateTotal编写一个Jest单元测试,覆盖正数、负数和零三种情况”直接改成:【用Jest写函数calculateTotal的单元测试,参数为number[],返回number。只测三个用例:[1,2]→3、[-1,-2]→-3、[]→0。不写describe,不写test.only,不加中文注释】。
这一步必须做。MarsCode看到“请”就激活对话模式,自动补全引导语、结构说明和安全兜底,这些全是后续手动删除的噪音。
绑定你正在编辑的真实代码上下文
方法一:把当前文件前五行粘进提示词。例如你光标停在src/utils/math.ts第12行,函数定义是:export function calculateTotal(items: number[]): number {……那么提示词开头就写:
```ts
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】。
【不粘上下文=生成通用模板;粘错上下文=生成不可用代码】。MarsCode依赖AST解析,只认你给的那几行真实代码,不认你口头说的“这个函数在utils里”。
强制禁用三类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';。

















