资讯动态

Agentic测试完整指南:从 pnpm test 到快照测试一次搞定

发布时间:2026/9/9 15:51:41 来源:尧图企业网站定制
Agentic测试完整指南从 pnpm test 到快照测试一次搞定【免费下载链接】agenticYour API ⇒ Paid MCP. Instantly.项目地址: https://gitcode.com/GitHub_Trending/ag/agenticAI 代理代码的输出往往是半结构化的——工具调用参数、结构化解析结果稍有偏差就会在用户侧炸掉。所以做 TypeScript AI SDK 测试时Agentic 测试这层保障越早搭越好。好消息是这个项目自带的 vitest 快照体系已经相当成熟照着跑一遍就能上手。三步跑通 Agentic 测试clone、install、pnpm test先别急着写业务先把测试跑通。项目用 pnpm 管理package.json 里锁了pnpm10.17.0要求 Node ≥ 20三行命令git clone https://gitcode.com/GitHub_Trending/ag/agentic cd agentic pnpm install pnpm test 这里容易踩坑根目录的pnpm test实际执行的是turbo test而 turbo.json 里test任务依赖 format 检查、lint、类型检查和单元测试四件套且pretest会先触发 build。第一次跑慢是正常的耐心等它跑完即可。Agentic 单元测试文件命名与 describe/test 这样用单元测试文件一律以.test.ts结尾与源码同目录、同名如 utils.test.ts 对应utils.ts。几个典型入口核心工具stdlib/core/src/utils.test.tsLangChain 集成stdlib/langchain/src/langchain.test.tsZod 转 JSON Schemastdlib/core/src/zod-to-json-schema.test.ts测试框架是 vitest结构很简单test写单个用例一组相关用例才用describe包一层。直接抄 langchain.test.ts 的真实写法import { EchoAITool } from agentic/core import { expect, test } from vitest import { createLangChainTools } from ./langchain // 1 个 AI 工具应被转换为 1 个 LangChain 工具 test(createLangChainTools, () { expect(createLangChainTools(new EchoAITool())).toHaveLength(1) })需要分组时用describe比如 utils.test.ts 里的stringifyForModeldescribe(stringifyForModel, () { test(handles empty input, () { const result stringifyForModel() expect(result).toEqual() }) })✅ 原则一个test只验证一个功能点。用例名字就是文档失败时一眼能看出问题出在哪。Agentic 快照测试toMatchSnapshot 与snapshots快照管理快照测试snapshot testing说白了就是把上一次的输出存档下次直接对比。在 AI 代理场景里特别好用因为很多输出是复杂对象工具列表、解析后的结构化数据、生成的 URL逐字段写断言太累快照更省事。典型场景OpenAPI 规范转换出来的工具结构结构化输出structured output的解析结果配置加载后的完整对象stdlib/core/src/utils.test.ts 里对参数清洗函数的快照写法expect(sanitizeSearchParams({ a: [1, 2, 3] }).toString()).toMatchSnapshot() expect(sanitizeSearchParams({}).toString()).toMatchSnapshot()快照文件自动生成在同级__snapshots__目录里比如 utils.test.ts.snap 和 parse-structured-output.test.ts.snap。内容长这样exports[sanitizeSearchParams 2] a1a2a3;⚠️ 关键点输出一旦变化测试就会红。这是特性不是 bug——它逼你确认这个变更是我主动改的还是回归了。确认无误后用vitest -u更新快照。进阶覆盖率、TDD 与快照定期审查把前面两块串起来就是一套完整的 AI代理测试实践核心路径全覆盖公共 API如createLangChainTools和工具函数slugify、pruneEmpty必须有对应用例边界条件空对象、空数组、极限输入各来一发参考sanitizeSearchParams({})这类用例集成测试补位apps/e2e下有 HTTP 和 MCP 的端到端测试覆盖真实请求链路新功能建议走 TDD 循环先写用例定义行为 → 实现到通过 → 重构保持绿pnpm test全程当安全网用。 最后提醒.snap文件不是生成一次就忘的合并 PR 时扫一眼快照 diff防止无意的输出漂移悄悄进主干让测试体系跟着项目一起演进。【免费下载链接】agenticYour API ⇒ Paid MCP. Instantly.项目地址: https://gitcode.com/GitHub_Trending/ag/agentic创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

读完文章,也想定制专属网站?

尧图设计师 24 小时内与您沟通定制方案

免费获取报价