WorkBuddy
0da93008d0
test(miniapp): 行为契约的桩改为忠实模拟 wx 回调包装(异常不外逸,转 App.onError)
原桩直接同步调用 `opt.success(...)`,被测代码在回调内抛错时异常会**外逸到测试进程**,
于是「请求永不 settle」这一真实后果反而测不出来 —— 报出来的是注入的异常本身,
而不是「Promise 永久 pending」。
真实小程序里 `wx.request` 的回调是被 wx 包装的:回调内抛错**不会**打断请求链,
而是被捕获后走 `App.onError`(本轮控制台实测 `[App onError] MiniProgramError`),
后果是 `resolve` 永不执行。桩必须保真这一点,否则判据会在错误的地方变红。
改动:
- `respond()` 捕获回调内异常并记录,不外逸;
- 成功路径新增断言:成功回调内**不得**抛出任何异常(附明确失败信息)。
负向自证(改前已实测):在 `resolve(body.data)` 之前注入一行抛错 →
本契约输出 `Promise 在 1000ms 内未 settle —— 收尾逻辑又跑到了 resolve 之前` 并退出 1;
移除注入后 `git diff --exit-code` 为空(逐字节还原),全量门禁 **18/18 PASS**。
2026-09-19 11:43:13 +08:00
..
2026-09-13 21:44:58 +08:00
2026-09-18 20:51:12 +08:00
2026-09-17 22:21:31 +08:00
2026-09-14 06:38:44 +08:00
2026-09-19 11:43:13 +08:00
2026-09-10 22:57:52 +08:00
2026-09-17 22:21:31 +08:00
2026-09-19 11:40:38 +08:00
2026-09-13 21:19:05 +08:00
2026-09-13 21:24:54 +08:00
2026-09-13 21:19:05 +08:00
2026-09-14 10:02:34 +08:00
2026-09-16 12:33:48 +08:00
2026-09-10 22:00:17 +08:00
2026-09-13 21:12:50 +08:00
2026-09-18 20:51:12 +08:00
2026-09-19 11:25:05 +08:00
2026-09-19 11:40:38 +08:00