用途:该技能用于在 NestJS 项目中编写单元测试与端到端(E2E)测试,覆盖服务、控制器、提供者、守卫、拦截器、管道和过滤器等。
主要能力:NestJS 内置测试工具,默认使用 Jest。可用 Test.createTestingModule() 创建隔离测试模块,通过 compile()、get<T>()、overrideProvider()、overrideGuard()、overrideInterceptor()、overridePipe() 等方法装配与替换依赖。可用 useValue、useFactory 模拟依赖,用 jest.fn()、jest.spyOn() 验证调用与返回值。支持测试异步操作、错误处理、数据库交互与集成测试,E2E 测试基于 supertest 验证完整请求流程。
必要用法:项目创建后自带 Jest 配置,常用命令为 npm run test、npm run test:watch、npm run test:cov、npm run test:e2e。单元测试中先编译 TestingModule 再取实例;E2E 测试导入 AppModule、调用 createNestApplication() 与 app.init(),用 request(app.getHttpServer()) 发请求。集成测试可用 sqlite 内存数据库(':memory:')并配合 synchronize: true,测试间用 repository.clear() 清理数据。
适用场景:为服务/控制器/提供者编写测试、模拟依赖进行隔离测试、测试 API 端点、测试守卫/拦截器/管道/过滤器、准备测试夹具与数据、测试异步与数据库交互、提升覆盖率、验证错误与边界情况。
限制:官方资料中嵌套 E2E 测试部分末尾内容被截断,未完整给出全部策略细节;未提供收费、价格、平台或效果等信息。