开发来源 DEV.to

AI 写的排序测试只挑了 3 个数:用 fast-check 换成上千个随机输入

编码 agent 交来的排序测试三个数组全过,可 [...xs].sort() 不带比较器时按字符串比,[10, 9] 排完还是 [10, 9]。

要点

  • fast-check 是 TypeScript 的属性测试库,接进 Vitest:npm install --save-dev vitest @fast-check/vitest
  • 不挑输入,只写对每个输入都必须成立的条件:输出长度不变、相邻元素前者不大于后者
  • 三种够用的形状:不变量、往返(decode 撤销 encode)、对照慢实现(闰年判断对比 Date.UTC)
  • 失败会自动收缩成 [2, 1000000000] 这种一眼看懂的反例,报告里带 seed 和 path;默认每个属性 100 次,CI 里可用 FC_RUNS=1000 npx vitest run
阅读原文这里是中文要点整理,数字与细节以原文为准。

评论

还没有评论,来写第一条。

更多资讯

全部