用途:为 Express + Prisma 后端编写单元测试和集成测试,适用于为已有服务或控制器添加测试、为新模块创建测试、用 mock 验证外部 API 集成、验证端点的认证与授权,以及提升测试覆盖率。
主要能力:基于 Vitest 运行测试,Supertest 对 Express 应用发起 HTTP 请求,支持对 Prisma 客户端和外部服务进行 vi.mock() 模拟,并统计覆盖率。
安装:cd ocralis_backend npm install -D vitest supertest @vitest/coverage-v8
配置:vitest.config.js 中启用 globals、node 环境与 v8 覆盖率;package.json 中添加 test、test:run、test:coverage 脚本。
测试类型:服务单元测试(直接调用服务函数并断言返回结构)、端点集成测试(导入 app 后用 request(app) 请求,断言状态码与响应体)、受保护端点测试(先登录获取 token,再在请求头中携带 Bearer token,分别验证无 token 与有 token 的情况)。
模拟:用 vi.mock() 替换 prismaClient 中的各模型方法,以及 saltra 等外部服务方法,mockResolvedValue 返回预设结果。
约定:框架 Vitest(兼容 ES Modules),HTTP 测试用 Supertest 并导入 app,mock 用 vi.mock(),命名 {archivo}.test.js,描述使用西班牙语,目录结构为 tests/{层}/{文件}.test.js,关键服务覆盖率目标最低 60%。
限制:资料仅给出上述配置与示例,未提供具体运行环境版本、CI 集成、数据库隔离或其它平台细节。