SuperAPI AI 工具集

bun-testing

测试与质量

查看项目

更新于 10-15 21:09

技能介绍

用途:为 Bun/TypeScript 项目提供测试编写规范,使用 bun:test 框架,适用于编写测试、创建测试文件、调试测试失败和进行测试配置等场景。

主要能力与约定:测试文件遵循 *.test.ts 模式并放在 tests 目录内;覆盖率目标为 60–80%,聚焦重要逻辑而非追求 100%;测试环境变量使用 .env.test,由 Bun 原生加载,无需手动 dotenv;对 @/env 尽量少做模拟。

测试工具位于 src/tests/:createTestApp(basePath, route, middleware[]) 创建带错误处理、日志及可选中间件的 Hono 测试应用;ModuleMocker(import.meta.url) 用于模块模拟;post、get、doRequest 为请求辅助函数。示例:从 @/tests 导入 createTestApp 与 post,用 createTestApp('/api/v1/auth', signupRoute, [captchaMiddleware()]) 构建应用后发起请求。

测试类型:单元测试模拟全部依赖(仓库、服务、API);集成测试使用真实数据库、仅模拟外部 API;端点测试用 createTestApp() 配合被模拟的服务。优先级为正确场景、错误处理、边界输入与失败场景。

模拟策略:只模拟业务逻辑依赖与外部 API;共享服务(验证码、邮件)使用全局模拟,不在每个测试中重复定义;禁止真实数据库或网络调用,所有 I/O 必须模拟;不模拟封装依赖,只模拟公开 API/包装层。类型上尽量少用 any,优先正确 TypeScript 类型与类型推断,模拟对象可用 Partial<T>。

结构与清理:采用 arrange → act → assert 模式并写描述性测试名;每个测试后清理副作用,如 moduleMocker.clear() 与 vi.clearAllMocks()。详细模拟模式(变量顺序、beforeEach 设置、ModuleMocker 用法)见 references/mocking-patterns.md。