유닛 테스트 구현 중 외부 함수를 mocking 해야하는 경우가 생겼다.
spyOn를 사용할 땐 보통 클래스에 있는 함수를 사용하기에
jest.spyOn(클래스명, '<함수이름>')
으로 적어주면 되었는데 이번에는 클래스 없이 함수로만 구성되어 있어서
어떻게 호출해야할 지 고민이 되었다.
그러다가 발견한게 바로 와일드카드(*)를 이용한 alias 사용하기
어떻게보면 당연한거겠지만 나에게는 정말 엄청난 발견이였다.
import * as aliasName from '../outerFunction';
// `mockReturnValue`는 유닛테스트를 진행하기 위해 특정 함수의 리턴값을 임의로 정하는 기능
jest.spyOn(aliasName, 'functionName').mockReturnValue('expected result');
이렇게 spyOn과 와일드카드를 이용하면 클래스명 없이도 외부 함수를 모킹할 수 있게 된다.