Jest를 사용하여 ES6 모듈 가져오기를 모의하는 방법

3561 단어 jesttestingjavascript
이 문서는 https://robertmarshall.dev/blog/how-to-mock-an-es6-module-import-using-jest/에 처음 게시되었으며 최신 정보입니다.


ES6 모듈이란 무엇입니까?



ES 모듈은 모듈 작업을 위한 ECMAScript 표준입니다. 노드는 한동안 이 표준을 사용했고 브라우저는 최근(2016년)에야 ES6를 사용하기 시작했습니다. ES6 함수는 구문 설탕이 있는 일반 함수와 동일합니다. 그래서 그들은 같은 방식으로 조롱받을 수 있습니다!

ES6 모듈을 모의하는 방법


jest.mock 함수는 Jest로 ES6 모듈 가져오기를 모방하는 데 사용됩니다. 초기 기능은 다음과 같습니다.

// ./functionToTest.js
import {
    es6ModuleToMock,
    es6ModuleToReturnThing
} from './fileWithModuleToMock';

export const functionToTest = () => {
    const value = es6ModuleToReturnThing();
    es6ModuleToMock(value);
};



테스트 파일은 다음과 같습니다.

import functionToTest from './functionToTest';
import {
    es6ModuleToMock,
    es6ModuleToReturnThing
} from './fileWithModuleToMock';

jest.mock('./fileWithModuleToMock');

test('example of how to mock an ES6 module', () => {
    const mockValue = 'mock-value';
    es6ModuleToReturnThing.mockReturnValue(mockValue);

    functionToTest();

    expect(es6ModuleToMock).toBeCalledWith(mockValue);
});


우리가 하는 일은 모킹해야 하는 특정 기능을 가져온 다음 Jest로 전체 파일을 모킹하는 것입니다. 이를 통해 서로 다른 기능을 사용하여 서로 다른 모의를 실행할 수 있습니다.

좋은 웹페이지 즐겨찾기