SuperAPI AI 工具集

contract-testing-ts

测试与质量

查看项目

更新于 10-15 17:24

技能介绍

用途:面向 test-contractor 契约测试库,帮助在项目中配置并编写基于契约的测试。契约以 *.contract.yaml 文件声明式描述测试用例,覆盖函数、类与对象。

主要能力:两条工作流——项目设置(让包通过 Vitest 发现并运行 *.contract.yaml)与编写契约(为函数、类、对象创建和维护 YAML)。两者都需运行契约测试来验证。

使用方式:项目设置需在根目录创建 vitest.config.contract.ts(使用 ContractReporter 与 contractYamlPlugin,include 匹配 src/**/*.contract.yaml),并在 package.json 添加 "test:contract": "vitest --config=./vitest.config.contract.ts",随后运行 npm run test:contract 验证。若缺少 vite-tsconfig-paths 需安装:npm install --save-dev vite-tsconfig-paths。

编写契约:先读源码,识别导出与签名,在源文件同目录创建 *.contract.yaml,module 指向编译后的 .js。术语设计按 zero、one、many、lots、oops 五类场景,每个方法目标 3–7 个术语。若有被 mock 的依赖,需检查被引用契约是否覆盖主体的实际调用,缺则补充术语并重新运行被 mock 依赖的契约测试。

限制:无法声明式表达的场景(内部调用次数/顺序、运行时 setup/teardown、非确定性状态、复杂异步)需回退到 Vitest *.test.ts,并在文件顶部注明补充关系。可选字段与模板细节以资料所述为准,其他未提供。