개발자
jest로 expect(xxx) 해서 함수가 제대로 콜 됐는지 확인하고 싶은데요! .toXXX를 확인해보면 전부 mock function에 대해서만 하는것 같더라고요. 혹시 실제 로직도 체크하는 방법이 있을까요?
답변 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/
지금 가입하면 모든 질문의 답변을 볼 수 있어요!
현직자들의 명쾌한 답변을 얻을 수 있어요.
이미 회원이신가요?
지금 가입하면 모든 질문의 답변을 볼 수 있어요!