必须立即停止提交并优先定位单元测试失败原因:先确认是否行为变更或测试脆弱性导致断言失效,再检查「auto-apply unsafe refactors」是否关闭,接着比对执行路径差异,最后通过人工diff和active focus回溯隔离高危变更点并修复。
☞☞☞AI 智能聊天, 问答助手, AI 智能搜索, 多模态理解力帮你轻松跨越从0到1的创作门槛☜☜☜

当你用Muse Wonder Full重构或新增代码后,单元测试突然失败,必须立刻停止提交,优先定位是行为变更还是测试脆弱性导致的断言失效——它不会主动告诉你哪一行破坏了时序、哪处副作用被意外消除。
确认失败是否源于行为守恒失效
打开 Muse Code → 进入「AI Behavior」设置 → 检查「Auto-apply unsafe refactors」是否仍为关闭状态。这一步【不可跳过】,否则模型可能在你未察觉时合并了两个独立的 localStorage.setItem 调用,而测试正是靠第二次写入触发的监听回调。
回到失败的测试用例,复制其完整输入数据与断言逻辑,粘贴到 Muse Wonder Full 输入框中,追加指令:“请比对原代码与本次重构后代码在该输入下的执行路径:检查所有 await 位置是否偏移、每个 fetch 的 headers 是否被隐式补全、每个 class 方法中的箭头函数是否仍保留原始 this 指向、所有 console.warn 是否仍在原位置。”
若模型返回“行为一致”,但测试仍失败,则大概率是测试本身依赖了未声明的实现细节(比如 mock 了某个内部函数但重构后该函数已内联)。
快速隔离高危变更点
方法一:用 diff 视图人工扫描三类红线
① 所有 console.* 语句是否仍在原位置,未被注释或删除;
② 所有 fetch 调用的 body 参数是否保持原始构造方式(例如原为 new FormData(),不能改为 JSON.stringify);
③ 所有 setTimeout(fn, 0) 是否未被替换为 Promise.resolve().then(fn),因为后者会改变微任务与宏任务的执行层级。
方法二:启用 Active Focus 强制回溯
在 Muse Code 中输入:“请切换至Active Focus模式:假设测试失败源于状态污染,请从 test_transform_empty_list() 入口开始,逐层正向追踪 DataProcessor.transform 内部每一步对 shared_state、thread_local 或全局变量的读写操作,标出首次出现值不一致的行号与上下文。”
修复并验证测试通过
第一步:还原被误删/移动的关键副作用语句
找到模型输出中被标记为“潜在污染点”的行,比如某处 console.log 被删、某次 localStorage.setItem 被合并、某处 await 被提前——这些不是代码坏味道,而是测试契约的一部分,必须原样保留。
第二步:不修改测试,只修正代码行为
若测试断言的是“调用 transform 后 email 字段被 sanitize_email() 处理过”,但重构后该函数被跳过,则必须显式插入 sanitize_email(email) 调用,哪怕看起来冗余;【不要改测试来适配重构结果】。
第三步:用 Muse Wonder Full 验证修复效果
粘贴修复后的代码 → 输入:“请确认该版本对空列表、含字符串的混合列表、含负数的数字列表、含 None 的列表四组输入,是否与原始版本输出完全一致(包括返回值、抛出错误类型、console.warn 内容、localStorage 写入次数与参数顺序)。”











