如何在NestJs中测试模块

时间:2018-02-25 19:57:16

标签: nestjs

我正在为项目添加测试并改善覆盖范围。我想知道如何在NestJs中测试模块定义(mymodule.module.ts文件)。 特别是,我正在测试一个导入其他模块的主模块,其中一个在db连接中,这意味着我需要在另一个模块上模拟服务,以避免真正的数据库连接。 此刻我有这样的事情:

beforeEach(async () => {
    const instance: express.Application = express();

    module = await NestFactory.create(MyModule, instance);
});
describe('module bootstrap', () => {
    it('should initialize entities successfully', async () => {
        controller = module.get(MyController);
        ...

        expect(controller instanceof MyController).toBeTruthy();
    });
});

这有效,但我确信这可以得到改善:)

理想的是类似于Test.createTestingModule提供的overrideComponent方法。

P.S:我正在使用4.5.2版本

1 个答案:

答案 0 :(得分:0)

您现在可以通过以下方式对其进行测试(至少在代码覆盖率方面):

describe('MyController', () => {
   let myController: MyController;

   beforeEach(async () => {
      const module = await Test.createTestingModule({
         imports: [MyModule],
      }).compile();

      myController= module.get<MyController>(MyController);
   });

   it('should the correct value', () => {
     expect(myController.<...>).toEqual(<...>);
   });
});