expect(res.statusCode).toBe(500);
236
작성한 질문수 4
it('should handle errors', async () => {
const errorMessage = {message: 'errors'};
const rejectedPromise = Promise.reject(errorMessage);
Product.findByIdAndUpdate.mockReturnValue(rejectedPromise);
await productController.updateProduct(req, res, next);
expect(next).toHaveBeenCalledWith(errorMessage);
// expect(res.statusCode).toBe(500); // Received: 200
});
server.js 에 작성된 오류 처리기에서는 500으로 처리하도록 되어 있는데, 위와 같이 500으로 처리되는지 확인해보면 200이 response되고 있습니다. next에 대한 테스트는 의도대로 되는 것으로 보아서 테스트는 문제가 없는 것 같은데, 왜 express 오류처리기의 response코드 500이 아닌 200으로 처리되는지 궁금합니다.
답변 1
0
안녕하세요 !!! 혹시 updateProduct 메소드에 직접적으로 500을 리턴을 해주시는건가요 ?
아니면 try catch 문에서 next(error)로 정의해주셨기 때문에 res.statusCode는 직접적으로 작성해주시지 않았다면 500으로 나오지 않는답니다. 단위테스트 말고 통합테스트를 하면 실제로 500에러가 일어나지만 단위테스트에서는 수동으로 작성해준것과 같은지만 테스트 해주고 있습니다 ~ !
0
강의에서와 동일하게 updateProduct의 try catch에서는 next(error); 만 호출해주고 있습니다.
그럼 productController.updateProduct(req, res, next)의 res와 server.js에서 구현한 오류처리기에서 res.status(500).send(); 할때의 res가 다른 객체라서 ,
위 주석 처리된 단위테스트의 500 상태값 체크가 되지 않는 것으로 이해하면 될까요?
TypeError: user_model_1.default.create is not a function
0
263
1
에러 처리를 위한 단위테스트 작성
0
357
1
res.status(201) 부분에서 typeerror가 발생합니다
0
393
1
따라하며 배우는 TDD 개발 [2023.11 업데이트] 강의 질문
0
341
1
[MAC] PORT:5000번 관련 에러
0
281
0
테스트를 위한 데이터베이스를 생성해야하나요?
0
404
1
Postman 사용방법에 대해서
0
406
1
jest.fn() 을 할당할때 타입스크립트에서 에러가 발생합니다.
0
453
1
라우터를 돌릴 때
0
358
1
npm run start를 실행할 때 부터가 이상합니다.
1
439
1
node.js에 대한 이상점
0
461
1
nodemocks 오류나니까 뺴고 설치하셔요
1
414
1
Node.js 앱을 테스트하기 위한 Jest 설정 부분..
0
276
0
models 파일만 첫번째 글자를 대문자로 해주는 이유
0
304
1
mongodb project 및 cluster관련
0
331
0
무조건 failure case 로 넘어가시는 분들
2
263
1
올려둔 ES6 Express Jest Boilerplate Template 으로 개발 중이신 분들...
0
240
0
ES6 사용하고 싶은 분들...
1
364
0
Jest did not exit one second after the test run has completed. 이슈
0
3052
3
왜 인자네개 함수 안만들어도 포스트맨에서는 에러메세지가 나오는 것인가요?
0
306
2
통합 테스트에 관한 질문 이 있습니다.
0
248
1
bodyParser 대체에 관한 질문
0
426
2
Cannot log after tests are done. Did you forget to wait for something async in your test?
0
2126
1
안녕하세요. 문의드립니다.
0
205
1





