[英]Nestjs e2e test fails with getHttpServer but works with .agent
我試圖使用以下代碼在nestjs中編寫我的第一個e2e測試:
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();
});
});
在嘗試調試我看到的超測試請求時,它總是以 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)
});
你必須等待回應。 做類似的事情。 看看下面的片段,我在其中添加了等待響應而不是返回
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();
});
問題是我使用的是 controller 的端點而沒有導入父模塊。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.