SuperAPI AI 工具集

nestjs-testing

测试与质量

查看项目

更新于 10-16 01:10

技能介绍

用途:该技能用于在 NestJS 项目中开展测试,涵盖单元测试、集成测试与端到端测试,目标是构建经过充分测试、可靠的 NestJS 应用。

主要能力:

  1. 单元测试搭建:使用 @nestjs/testing 的 Test.createTestingModule 创建并配置测试模块,通过 providers 注入被测服务,并用 useValue 提供模拟依赖。
  2. 控制器测试:模拟服务方法(如 findAll、findOne、create、update、remove),验证请求/响应处理、返回值以及 NotFoundException 等异常抛出。
  3. 服务测试:模拟 TypeORM 仓库(通过 getRepositoryToken 注入),覆盖查询、创建、更新、删除及 ConflictException、NotFoundException 等分支。
  4. 提供者测试:支持工厂提供者(useFactory + inject)与异步提供者的测试。
  5. 守卫测试:测试 JwtAuthGuard、RolesGuard 等,验证有效令牌放行、无令牌或无效令牌抛出 UnauthorizedException、角色不足抛出 ForbiddenException。
  6. 拦截器测试:测试转换与日志类拦截器对响应数据的处理。

使用方式:在测试文件中从 @nestjs/testing 导入 Test 与 TestingModule,在 beforeEach 中编译测试模块并获取实例,在 afterEach 中关闭模块或清理 mock(如 jest.clearAllMocks)。依赖模拟通常使用 jest.fn(),断言使用 expect。

适用场景:为 NestJS 的控制器、服务、提供者、守卫、拦截器编写单元与集成测试,以及构建端到端测试。

限制:资料未提供具体安装命令、版本要求、端到端测试的完整配置细节,也未说明收费、平台或效果信息,这些内容暂未提供。