소개
Jest는 모의를 포함하여 단위 테스트를 위한 포괄적인 도구 모음을 제공합니다. 코드에서 가져온 모듈입니다. 이 기사에서는 Jest에서 ES6 모듈 가져오기를 모의하는 방법을 설명하고 모듈 종속성을 테스트하는 문제를 해결합니다.
문제 설명
모의 모듈 가져오기를 통해 개발자는 ES6 모듈 가져오기의 동작을 격리할 수 있습니다. 종속 모듈에 대한 테스트를 실행하는 동안 특정 모듈. 그러나 import를 spy로 대체하는 Jasmine에서 사용하는 접근 방식은 테스트 환경이 다르기 때문에 Jest에 직접 적용할 수 없습니다.
Solution
Jest는 import * 구문은 모듈의 모든 내보내기를 단일 객체로 가져옵니다. 이 기술을 활용하여 ES6 모듈 가져오기를 모의할 수 있습니다.
이름이 지정된 내보내기 모의
이름이 지정된 내보내기의 경우 import *를 사용하여 모듈을 가져온 다음 내보낸 객체를 다음으로 변경하면 됩니다. 원하는 기능을 모의합니다:
// dependency.js export const doSomething = (y) => console.log(y);
// myModule.js import { doSomething } from './dependency'; export default (x) => { doSomething(x * 2); };
// myModule-test.js import myModule from '../myModule'; import * as dependency from '../dependency'; describe('myModule', () => { it('calls the dependency with double the input', () => { dependency.doSomething = jest.fn(); // Mutate the named export myModule(2); expect(dependency.doSomething).toBeCalledWith(4); }); });
기본 내보내기 모의
기본 내보내기의 경우 'modulePath'에서 import moduleName을 사용하여 가져올 수 있습니다. 그런 다음 가져온 개체의 기본값을 변경합니다.
// dependency.js export default (y) => console.log(y);
// myModule.js import myModule from './myModule'; import * as dependency from '../dependency'; describe('myModule', () => { it('calls the dependency with double the input', () => { dependency.default = jest.fn(); // Mutate the default export myModule(2); expect(dependency.default).toBeCalledWith(4); // Assert against the default }); });
결론
import * 구문을 사용하고 내보낸 개체를 변경하는 것이 가능합니다. Jest에서 ES6 모듈 임포트를 모의하여 모듈의 종속성을 분리하면서 모듈의 기능을 테스트할 수 있습니다.
위 내용은 Jest에서 ES6 모듈 가져오기를 모의하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!