Jestjs Nestjs e2e测试在getHttpServer上失败,但与.agent一起工作
我试图使用以下代码在nestjs中编写我的第一个e2e测试:Jestjs Nestjs e2e测试在getHttpServer上失败,但与.agent一起工作,jestjs,nestjs,Jestjs,Nestjs,我试图使用以下代码在nestjs中编写我的第一个e2e测试: describe('AppController (e2e)', () => { let app: INestApplication; beforeAll(async () => { const moduleFixture: TestingModule = await Test.createTestingModule({ imports: [ AppModule, ]
describe('AppController (e2e)', () => {
let app: INestApplication;
beforeAll(async () => {
const moduleFixture: TestingModule = await Test.createTestingModule({
imports: [
AppModule,
]
}).compile();
app = moduleFixture.createNestApplication();
await app.init();
await getConnection().synchronize(true);
});
it('/ (GET)', async () => {
return request(app.getHttpServer())
.get('/')
.expect(200);
});
afterAll(async () => {
await app.close();
});
});
在尝试调试我看到的supertest请求时,404总是失败:
{
errno: -61,
code: 'ECONNREFUSED',
syscall: 'connect',
address: '127.0.0.1',
port: 57523,
response: undefined
}
如果我尝试使用.agent('127.0.0.1:3000')
连接到实际应用程序,则测试通过
it('/ (GET)', async () => {
return request
.agent('127.0.0.1:3000')
.get('/')
.expect(200)
});
你必须等待答复。做一些类似的事情。请看下面的代码片段,我在其中添加了wait to response,而不是return
it('should throw validation error when creating employer policy', async () => {
const data = {
max_percent_of_salary: true,
is_employer_paid: true,
has_advance_activated: false,
};
const response = await request(app.getHttpServer())
.post('/sa-employer-policy/create/')
.set('Accept', 'application/json')
.set('Authorization', 'Bearer ' + employer_token)
.send(data)
.expect(HttpStatus.BAD_REQUEST);
expect(response.body.message).toBeDefined();
})) 问题是,我使用的是来自控制器的端点,而没有导入父模块。感谢您的回答,wait没有任何区别wait getConnection()。synchronize(true);应位于app.init的上方