我尝试在NestJS中使用jest e2 e测试我的登录场景。当我登录或注册它会发送验证码与短信给我,如果我硬编码短信代码或改变我的逻辑绕过它,整个测试案例福尔斯。有没有办法将我的其他服务注入到我的app. e2 e-spec.ts中,并在我的测试用例中使用它来查询验证码?我尝试使用直接 Mongoose 连接来获取验证码,但似乎是错误的。
fnvucqvd1#
Nest为此提供了.overrideProvider API,而您正在编译测试应用程序。
.overrideProvider
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 });
1条答案
按热度按时间fnvucqvd1#
Nest为此提供了
.overrideProvider
API,而您正在编译测试应用程序。