inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

따라하며 배우는 TDD 개발 [2023.11 업데이트]

updateProduct 단위 테스트 작성 (2)

expect(res.statusCode).toBe(500);

236

사리곰탕

작성한 질문수 4

0

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으로 처리되는지 궁금합니다.

mongodb supertest nodejs express tdd jest mongoose

답변 1

0

John Ahn

안녕하세요 !!! 혹시 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