Atobaum

Jest에서 모듈 목킹하기

개요

부수효과가 있는 함수를 임포트해서 사용하는 함수를 어떻게 테스트할까? 눈앞이 깜깜해진다. Jest는 테스트를 위한 여러가지 유틸리티를 제공해준다. 역시 모듈을 mocking하는 함수도 제공해준다.

// dependency.js
 
export function log(){
	// some side effect
	return "side effect"
}
export default function(){
	return "side effect1"
}
 
// module.js
import dependency, { log } from "./dependency";
 
export defualt function exampleFunc(){
	return [dependency(), log()];
}
// test.js
import exampleFunc from "./module"
 
jest.mock("./dependency", () => {
  log: () => "mocked log"
})
 
test("", () => {})