我正在为项目添加测试并改善覆盖范围。我想知道如何在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版本
答案 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(<...>);
});
});