如何在e2e jest测试NestJS中使用特定服务

zpqajqem  于 2023-04-18  发布在  Jest
关注(0)|答案(1)|浏览(150)

我尝试在NestJS中使用jest e2 e测试我的登录场景。
当我登录或注册它会发送验证码与短信给我,如果我硬编码短信代码或改变我的逻辑绕过它,整个测试案例福尔斯。
有没有办法将我的其他服务注入到我的app. e2 e-spec.ts中,并在我的测试用例中使用它来查询验证码?
我尝试使用直接 Mongoose 连接来获取验证码,但似乎是错误的。

fnvucqvd

fnvucqvd1#

Nest为此提供了.overrideProvider API,而您正在编译测试应用程序。

describe('E2E suite', () => {
  let app: INestApplication;
  let url: string;
  beforeAll(async () => {
    const modRef = await Test.createTestingModule({
      imports: [AppModule],
    })
    .overrideProvider(ProviderToOverride)
    .useValue(mockOfTheProvider)
    .compile();
    app = modRef.createNestApplication();
    await app.listen(0); // listen on random port
    url = await app.getUrl();
  });
  afterAll(async () => {
    await app.close();
  });
  ...tests
});

相关问题