首页 > 解决方案 > 错误找不到模块,正在测试 Nestjs 服务

问题描述

我在 Nestjs 上测试服务时遇到了困难,我相信这与我对依赖注入如何进行测试缺乏了解有关,奇怪的事情只是在测试中出现错误。我有 3 个模块 Teste、Teste2、Teste3,Teste2 导入 Teste3 服务,Teste 导入 Teste2 服务。我尝试导出 Teste2 和 Teste3,并导入它们的模块,当我运行 npm start 时工作正常。对测试思想不起作用...

睾丸

 @Module({
    imports: [],
    providers: [ TesteService,Teste2Service],
    exports: [TesteService],
    controllers: [TesteController]
  })
  export class TesteModule {}
@Injectable()
export class TesteService {
constructor(private teste2Service: Teste2Service){}

    teste(){
        return this.teste2Service.hello();
    }
}

睾丸2

@Module({
  imports: [Teste3Module],
  providers: [Teste2Service],
  exports: [Teste2Service]
})
export class Teste2Module {}
@Injectable()
export class Teste2Service {
    constructor(private teste3Service: Teste3Service){}
    hello(){
        return this.teste3Service.hello();
    }
}

睾丸3

@Module({
  providers: [Teste3Service],
  exports: [Teste3Service]
})
export class Teste3Module {}

@Injectable()
export class Teste3Service {

    hello(){
        return 'Hello World';
    }
}

实际测试

describe('TesteService', () => {
  let service: TesteService;

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

    service = module.get<TesteService>(TesteService);
  });

  it('should be defined', () => {
    expect(service).toBeDefined();
  });
});

错误 src/teste/teste.service.spec.ts

Cannot find module 'src/teste2/teste2.service' from 'teste.service.ts'

标签: node.jsnestjs

解决方案


E2E 找不到绝对路径。更改为相对路径:../src/teste2


推荐阅读