TIL,WIL(일간,주간 회고)
[TIL] jest 에러 테스트시 await 있을 때 없을 때 차이
worldint
2023. 9. 25. 16:55
jest로 에러테스트시에 지금까지 아래와 같이 해왔다
it('에러테스트', async () => {
const service = new Service();
expect(await service.execute(req)).rejects.toStrictEqual(
new Error('failed'),
);
});
이때 await을 쓰면 테스트가 통과 되지 않고
await을 안쓰면 테스트가 통과되는데
그 이유는 .rejects는 Promise객체에만 쓸 수 있는데 await을 쓰면 그것은 이미 어떤 값이 되어 버린것이기 때문에
.rejects를 쓸 수 없기 때문이다
awati 쓸 꺼면
아래처럼 tyr catch 쓰고 에러 문구가 잘 맞나 테스트하면된다
try {
await service.execute(req);
} catch (e) {
expect(e).toEqual(new Error('failed'));
}