개발자

jest의 expect 를 사용해서 함수가 제대로 콜 되었는지 확인하는 방법이 궁금합니다

2023년 06월 26일조회 62

jest로 expect(xxx) 해서 함수가 제대로 콜 됐는지 확인하고 싶은데요! .toXXX를 확인해보면 전부 mock function에 대해서만 하는것 같더라고요. 혹시 실제 로직도 체크하는 방법이 있을까요?

이 질문이 도움이 되었나요?
'추천해요' 버튼을 누르면 좋은 질문이 더 많은 사람에게 노출될 수 있어요. '보충이 필요해요' 버튼을 누르면 질문자에게 질문 내용 보충을 요청하는 알림이 가요.
profile picture
익명님의 질문

답변 1

달레님의 프로필 사진

Jest에서 mocking 또는 spying한 가짜 함수가 의도한데로 호출되었는지 확인하는 방법이 궁금하시군요. Jest는 정확히 이러한 용도로 `toBeCalled` (또는 `toHaveBeenCalled`)로 시작하는 다양한 API를 제공하고 있습니다. 테스트를 작성하실 때 이러한 matcher 함수들을 사용하시면 가짜 함수에 어떤 인수가 넘어왔고 몇 번 호출되었는지를 아주 간편하게 검증해볼 수 있어요. 아주 간단한 예제 코드를 작성해드리겠습니다. ```js const calculator = { add: (a, b) => a + b, }; const spyFn = jest.spyOn(calculator, "add"); const result = calculator.add(2, 3); expect(spyFn).toBeCalledTimes(1); // ✅ 딱 한 번 호출되었는지 검증 expect(spyFn).toBeCalledWith(2, 3); // ✅ 인수로 2와 3을 넘겼는지 검증 expect(result).toBe(5); ``` 예전에 이와 관련하여 블로그에 올려놓은 포스팅이 있어서 공유드릴테니 한 번 읽어보시면 도움이 되실 것 같습니다: https://www.daleseo.com/jest-fn-spy-on/

지금 가입하면 모든 질문의 답변을 볼 수 있어요!

현직자들의 명쾌한 답변을 얻을 수 있어요.

또는

이미 회원이신가요?

목록으로
키워드로 질문 모아보기

실무, 커리어 고민이 있다면

새로운 질문 올리기

지금 가입하면 모든 질문의 답변을 볼 수 있어요!