在测试中重新加载NestJs控制器

时间:2020-02-19 09:45:04

标签: testing config nestjs

我们有一个方法装饰器,该方法装饰器应用于一个控制器中的路由。该装饰器采用在配置文件中设置的布尔值,并且该值会随每个环境而变化。

我们想通过动态更改配置值来在e2e测试中测试此装饰器,我们已经设法做到了。我们使用config npm软件包而不是@nestjs/config软件包。

但是,即使在进行这些更改之后导入控制器,也要在应用更改之前加载控制器文件。

问题是我们如何重新加载或重新编译控制器以考虑修改后的值,以便装饰器更改其行为。

这是我们创建模块的方式,我们可以从该模块中剥离NestJs应用程序

    const moduleRef = await Test.createTestingModule({
      imports: [AuthModule],
      controllers: [AuthNestController],
    })
      .overrideProvider(IAuthProvider)
      .useClass(TestAuthProvider)
      .compile();

也欢迎采用在更改后强制加载控制器代码的解决方案。

0 个答案:

没有答案