十年匠心定制 · 商业建站与技术教学双线并行 咨询热线:400-886-1026 service@lmnt.cn
ARTICLE DETAIL

资讯详情

深耕网站建设与运营推广的一线实战洞察。

Agentic 测试:pnpm test 一次跑通四道关卡,快照标红看哪里

Agentic 测试:pnpm test 一次跑通四道关卡,快照标红看哪里 Agentic 测试pnpm test 一次跑通四道关卡快照标红看哪里【免费下载链接】agenticYour API ⇒ Paid MCP. Instantly.项目地址: https://gitcode.com/GitHub_Trending/ag/agentic改了一行slugify的边界逻辑跑完测试发现一堆快照 diff 标红——你第一反应是什么先别急着更新快照。Agentic 的测试体系值得先摸清一遍它是一套适配任意 LLM 与 TypeScript AI SDK 的 AI 代理标准库从标识符解析到定价计划核心逻辑全靠测试兜底。pnpm test 一键跑通四道关卡测试入口就写在 package.json 的 scripts 里两条命令的事pnpm install pnpm testpnpm test背后是一条 turbo 流水线按顺序跑四道关卡格式检查 → lint → 类型检查 → 单元测试vitest。哪关红了就停在哪关所以失败时先看卡在哪一步——很多时候不是断言挂了而是格式或类型出了问题。另外pretest会先执行一次 build首次跑得慢后续基本都走缓存。 只关心某个子包的话也可以进子包目录直接vitest run不必等整个仓库构建完。测什么、用什么测三类测试手段对比测试类型解决的问题参考文件单元测试纯函数行为slug 转换、空值裁剪、标识符解析utils.test.ts类型测试对象形状是否符合 TS 类型比如定价行项目里unitAmount必填packages/types/src/pricing.test.tse2e真实 HTTP 响应格式是否与网关一致apps/e2e/src/http-e2e.test.ts单元测试的写法非常朴素一个函数对应一个test用例把空对象、嵌套结构、西里尔字母、emoji 等输入挨个喂进去用toBe/toEqual断言输出。不想手写期望值时就交给快照断言expect(await sha256(test)).toMatchSnapshot()首次运行会写入快照之后每次都和它比对。类型测试则走另一条路pricing.test.ts用expectTypeOf在类型层面做断言甚至能声明这种形状不允许通过.not.toExtend——这是纯 TS 项目才有的玩法。至于 e2eapps/e2e是单独的一套它向真实运行的网关发 HTTP 请求逐条比对 fixture 里的响应体并把响应形状冻结成快照。这类测试需要先把服务拉起来更像发版前的最后一道兜底不是每次写代码都要跑。快照标红了先查这三处快照文件都躺在各包的__snapshots__目录里比如 rate-limit 的 schema 校验错误会把 ZodError 的完整结构原样冻结下来。diff 标红时按顺序查是不是自己改了输出对着 diff 确认变更是否有意为之。上游依赖是不是换了结构比如 zod 升级后错误结构变化可能只是 key 顺序变了并非行为改变。是不是漏了边界用例parse-deployment-identifier.test.ts 里success(...)和error(...)两条路径都过快照标红往往就是某种标识符形态的解析结果变了。⚠️ 别条件反射地整批更新快照。diff 大的时候分批确认——快照正是告诉你这次改得合不合理的证据。长期维护三个小习惯核心函数一改完顺手pnpm test跑全量别攒到发版那天。加新功能先写一条会失败的用例空字符串、极限值这类边界输入优先。定期翻一遍__snapshots__看到不认识的形状就该考虑换成显式断言。下次改完slugify或标识符解析这类函数顺手pnpm test跑一轮四关全绿再提交标红了就按上面查三处的思路走一遍。【免费下载链接】agenticYour API ⇒ Paid MCP. Instantly.项目地址: https://gitcode.com/GitHub_Trending/ag/agentic创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表