尧图精选

5 分钟跑通 Agentic 测试:从最小用例到快照防回归

🕒 发布时间:2026/9/9 19:25:31 📁 来源:尧图网络
5 分钟跑通 Agentic 测试从最小用例到快照防回归【免费下载链接】agenticYour API ⇒ Paid MCP. Instantly.项目地址: https://gitcode.com/GitHub_Trending/ag/agenticAgentic 测试不需要测试理论基础读完全文你能独立在这个仓库跑通测试、写出第一个用例并用快照拦住意外回归。 先跑起来Agentic 测试环境的最小命令链先确认 Node 版本不低于 20package.json的engines写死了20然后敲这几条命令git clone https://gitcode.com/GitHub_Trending/ag/agentic cd agentic pnpm install pnpm test项目用 pnpm 管理依赖preinstall钩子用only-allow锁死了包管理器npm/yarn 会被直接拦住测试框架是Vitest。根目录pnpm test实际执行turbo test以 32 路并发调度packages/、stdlib/等所有子包。第一次跑会先触发pretest构建钩子等终端出现各子包的全绿报告环境就算跑通了。 用例怎么写单元测试的骨架与命名习惯约定就三条文件一律.test.ts后缀跟源码同目录utils.ts旁边就是utils.test.ts见 stdlib/core/src/utils.test.ts个别包如json-schema放test/子目录断言统一走 Vitest 的expect。骨架是describe圈套件、test写用例import { describe, expect, test } from vitest import { zodToJsonSchema } from ./zod-to-json-schema describe(zodToJsonSchema, () { test(handles basic objects, () { expect(zodToJsonSchema(schema)).toEqual(expected) }) })一个用例只验一件事用例名里出现 and 就该拆开。函数简单时可以直接test不套describe仓库里两种风格并存。常有人问 TypeScript 项目如何写单元测试答案就藏在这套约定里就近放置、命名即文档、断言单一可对照 stdlib/core/src/zod-to-json-schema.test.ts 的完整写法。 状态变了怎么办快照测试防回归的正确姿势快照测试什么时候用一句话输出结构稳定、但手工写断言太累。适用场景是 API 响应格式、复杂对象序列化这类格式不该变的东西时间戳、随机 ID、环境相关路径就别拍了——每次运行都变快照必然变红。真实用例utils.test.ts里的sanitizeSearchParamsexpect(sanitizeSearchParams({ a: [1, 2, 3] }).toString()).toMatchSnapshot() expect(sanitizeSearchParams({}).toString()).toMatchSnapshot()首次运行会把输出写进__snapshots__目录如 stdlib/core/src/snapshots/utils.test.ts.snap内容是一行行exports[sanitizeSearchParams 1] a1c13。之后每次运行逐字比对代码改动导致输出不一致测试直接红。看到红灯先确认变更是否符合预期该变就按 Vitest 的-u参数更新快照不该变就去查代码别无脑放行。️ 让 Agentic 测试不翻车3 条实操建议覆盖率和稳定性是两回事下面三条最容易见效核心公共 API 全覆盖packages/types、stdlib/core这类对外导出的函数一个不能漏——它们是被下游依赖的契约改动最伤。边界与异常输入必测空对象、空数组、undefined、null各喂一轮pruneEmpty({ b: {}, c: [] })这种用例就是现成范本。新功能先写用例再写实现TDD节奏让 API 形状先于代码定型红-绿-重构循环会逼你把边界想清楚再动手。⚠️ 常见误区速查新手最容易踩的坑翻车基本集中在这三处每条都值得对号入座把快照当万能断言快照只拦意外变更不证明逻辑正确关键分支仍要写显式expect。测试里硬编码外部服务直连真实 API 的用例会随对方服务漂移本地 mock仓库已有mockKyInstance这类工具或走 e2e 夹具。快照红了无脑更新不看 diff 就更新等于把回归放行反过来该更新却不敢更新CI 长期红灯问题也解决不了。现在就打开终端跑一遍pnpm test然后挑一个你改过的函数补上它的第一份.test.ts。【免费下载链接】agenticYour API ⇒ Paid MCP. Instantly.项目地址: https://gitcode.com/GitHub_Trending/ag/agentic创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
上一篇/下一篇内容由系统自动关联 返回资讯列表 →