工程开发
encore-testing avatar

encore-testing

使用 Vitest 对 Encore.ts 后端应用程序进行单元与集成测试,包含隔离数据库与服务模拟支持。

简介

此技能提供有关测试使用 Encore.ts 构建的后端服务的详细指南。它专注于使用 Vitest 作为主要的测试框架,通过自动化的单元与集成测试帮助开发者编写高质量且可靠的程序代码。本技能涵盖标准的设置流程,包括配置 Vitest 以处理 Encore 特有的导入方式,并将测试与 Encore 的本地基础设施管理进行整合。通过执行 encore test 命令,开发者可以确保每次测试运行都能受益于自动化的测试数据库部署、隔离的环境管理,以及正确的服务依赖处理。

  • 编写 API 端点的单元测试,直接以 TypeScript 函数调用它们,以便轻松验证请求与响应的契约。
  • 实现隔离的数据库操作,每个测试都能在干净的事务状态下执行,并在完成后自动回滚,确保测试过程无副作用。
  • 利用 Vitest 强大的模拟 (mocking) 功能来隔离服务间的通讯,或替换外部第三方 API 依赖项。
  • 处理异步测试场景,包括使用 APIError 代码验证复杂的错误情况,以及验证 Pub/Sub 事件的发布。
  • 通过在受控测试环境中直接调用底层处理函数,来测试 Cron 定时任务与后台作业。
  • 配置高级测试设置,包含 Vitest 全局变量、Node 环境隔离以及覆盖率报告工具。
  • 将测试整合进 VS Code 并使用 Vitest 扩展功能,特别针对管理文件级并行性以防止测试执行期间的端口冲突提供指导。
  • 通过为并行执行与本地开发工作流设置适当的标签,优化 CI/CD 管线。

遵循既定的模式以确保测试套件的可维护性。在可行情况下,请优先使用真实的 Encore 基础设施组件(如 PostgreSQL 数据库或 Pub/Sub 队列)而非进行模拟,以保持高保真的集成测试。使用提供的 vite.config.ts 配置来确保正确解析生成代码的别名。请将测试重点放在业务逻辑与服务互动上,确保错误场景与成功执行流程的完整路径覆盖。

仓库统计

Star 数
23
Fork 数
3
Open Issue 数
1
主要语言
未提供
默认分支
main
同步状态
空闲
最近同步时间
2026年5月3日 18:45
在 GitHub 查看