这是我在nestjs中的app.module.ts:
import { Module } from '@nestjs/common';
import { CatsModule } from './cats/cats.module';
@Module({
imports: [CatsModule, ScheduleModule.forRoot()],
})
export class AppModule {}
这是我之前的测试:
const moduleRef = await Test.createTestingModule({
imports: [AppModule],
})
.compile();
app = moduleRef.createNestApplication();
await app.init();
我希望所有 @Cron() 装饰器在测试中被禁用。 我想完全禁用
ScheduleModule
进行测试。
怎么办呢
(动机是为了避免测试中出现意外的现场影响)
我认为问题是你想测试什么?如果您尝试测试实际模块中的代码,您需要创建一个模拟实际 AppModule 配置的测试模块,如下所示:
const moduleRef = await Test.createTestingModule({
imports: [CatsModule, ScheduleModule],
}).compile();
describe('your tests', ()=>{
})
我不知道您是否想要测试特定的用例,但通常您并不需要启动应用程序来测试模块,您只需要编译它并运行所描述的测试。这可能就是你有副作用的原因,因为你实际上是在运行应用程序而不是测试它。