[jest] spyOn을 이용하여 외부 함수 mocking 하기

Song·2021년 12월 13일
0

유닛 테스트 구현 중 외부 함수를 mocking 해야하는 경우가 생겼다.

spyOn를 사용할 땐 보통 클래스에 있는 함수를 사용하기에

jest.spyOn(클래스명, '<함수이름>')

으로 적어주면 되었는데 이번에는 클래스 없이 함수로만 구성되어 있어서
어떻게 호출해야할 지 고민이 되었다.

그러다가 발견한게 바로 와일드카드(*)를 이용한 alias 사용하기
어떻게보면 당연한거겠지만 나에게는 정말 엄청난 발견이였다.

import * as aliasName from '../outerFunction';

// `mockReturnValue`는 유닛테스트를 진행하기 위해 특정 함수의 리턴값을 임의로 정하는 기능
jest.spyOn(aliasName, 'functionName').mockReturnValue('expected result');

이렇게 spyOn과 와일드카드를 이용하면 클래스명 없이도 외부 함수를 모킹할 수 있게 된다.

profile
Learn From Yesterday, Live Today, Hope for Tomorrow

0개의 댓글