20240222

귤금·2024년 2월 22일

Node.js 4기 TIL

목록 보기
41/86

Today?

개인과제 수정

Jest

개인과제의 테스트 코드를 작성하면서 다음과 같은 오류가 발생했다.

    TypeError: mockRequest is not a function

      27 |      beforeEach(() => {
      28 |              jest.clearAllMocks();
    > 29 |              req = mockRequest();
         |                    ^
      30 |              res = mockResponse();
      31 |      });
      32 |

      at Object.mockRequest (tests/unit/controllers/users.controller.unit.spec.js:29:9)]

컨트롤러 계층에선 앞단과 직접 통신을 하는데, req 및 req와 관련된 값(예 : req.body)을 테스트 코드에서는 불러오지 못하는 문제였다.

단위 테스트에서 jest를 사용하여 HTTP 요청과 응답을 모의하는 경우, mockRequest와 mockResponse를 사용하기 위해 먼저 이 함수들을 정의하거나 라이브러리에서 제공하는 해당 기능을 가져와야 한다고 한다. jest-mock-express와 같은 라이브러리를 사용하면 된다.

yarn add jest-mock-express

다음과 같이 설치하고 나서 임포트 해주었더니 해결되었다.

import {mockRequest, mockResponse} from 'jest-mock-express';

회고

0개의 댓글