강의

멘토링

커뮤니티

인프런 커뮤니티 질문&답변

김혜윤님의 프로필 이미지
김혜윤

작성한 질문수

테스트 with Jest: 제로초에게 제대로 배우기

mockImplementation, mockReturnValue

mockfunction에 대해서

작성

·

16

0

안녕하세요 선생님

mockfunction에 대해서 설명 듣다가 질문이 생겨 글 남깁니다.

mockfunction이 좋고 유용한 이유가 기존 함수를 변경할 수 있다는 점이라고 하셨는데 , 기존 함수를 변경해서 테스트를 왜 하는지 모르겠습니다 .추후 강의에서 나오는 부분일까요?

 

그러니까 "필요성"에 대해서 공감이 가지 않는 것 같습니다,, 개발한 함수가 잘 돌아가는지에 대해서 테스트하면 되는 것인데 왜 다른 함수로 바꿔서 테스트를하나요? 그게 버그잡기 등의 효과가 있나요? 있다면 예를 들면 어떤상황이 있을지 알려주심 넘 감사할것 같습니다. 감사합니다

답변 1

0

제로초(조현영)님의 프로필 이미지
제로초(조현영)
지식공유자

개발한 함수를 바꾸는 게 아니고, 개발한 함수가 사용하고 있는(또는 의존하고 있는) 다른 함수를 바꾸는 것입니다. 유닛 테스트의 목적은 내가 테스트하고싶은 함수 하나만 잘 돌아가나 테스트하는 것이지, 테스트하고싶은 함수 내부의 다른 라이브러리함수까지 잘 돌아가나 테스트하는 게 아닙니다. 내부의 다른 라이브러리 함수까지 테스트하는 것은 통합테스트라고 따로 있습니다.

예를 들어 a라는 함수가 있고, a 함수가 데이터베이스에 insert를 하는 함수를 호출한다고 하면, a 함수 테스트를 돌릴 때마다 데이터베이스에 값이 insert됩니다. 이런 걸 막으려면 insert하는 함수를 모킹하고, 단순히 호출되었는지만 체크하는 겁니다.

김혜윤님의 프로필 이미지
김혜윤

작성한 질문수

질문하기