테스트 할 구성 요소 내에 사용되는 myHelper
이라는 기능을 제공하는 바벨 플러그인을 사용하고 있습니다 (그러나 바벨 플러그인으로 제공되므로 가져올 수는 없습니다).Jest 테스트에서 babel plugin을 모방하는 방법?
myHelper
을 Jest와 "글로벌하게"모의하려면 어떻게해야합니까?
테스트 할 구성 요소 내에 사용되는 myHelper
이라는 기능을 제공하는 바벨 플러그인을 사용하고 있습니다 (그러나 바벨 플러그인으로 제공되므로 가져올 수는 없습니다).Jest 테스트에서 babel plugin을 모방하는 방법?
myHelper
을 Jest와 "글로벌하게"모의하려면 어떻게해야합니까?
좋지 않은 방법 일 수 있습니다. myHelper
을 글로벌로 설정하면 가능합니다. 요 갈 수있는 곳
// myHelper.js
function myHelper(){
return work() // expected 1
}
if (global) {
global.myHelperFunction = myHelper;
}
// myHelper.test.js
test('TEST MY HELPER',() => {
expect(global.myHelperFunction()).toBe(1);
})
나는 두 방향을 참조하십시오 이 - 전 세계적으로 도우미를 사용할 수 있도록하고 코드가 상호 작용하는 방식을 테스트 - babel-jest
을 통해 도우미를 사용할 수 있도록하고
그에 따라 테스트를 작성 첫 번째 것은 jest 구성의 setupFiles
필드를 사용하여 수행 할 수 있습니다. 테스트를 실행하기 전에 실행될 스크립트 배열을 지정할 수 있습니다. 당신은 그 중 하나에서 도우미를 세계적으로 만들 수 있습니다.
두 번째 것은 농담 설정에서 transform
을 지정하여 수행 할 수 있습니다. 예 :
"transform": {
"^.+\\.(js|jsx)$": "<rootDir>/node_modules/babel-jest"
}
귀하의 요청이 더 구체적이라면 언제든지 말씀해주십시오.
나는 그 구성 요소가 myHelper
속성을 받아 들일 수있게하여 선택적으로 바벨이 제공 한 myHelper
메서드를 모의합니다. 기본적으로 속성은 원래 myHelper
방법을 가리 것이다 :
class MyComponent extends Component {
constructor() {
// Use myHelper function like:
this.props.myHelper();
}
return (
<div>...</div>
);
}
MyComponent.propTypes = {
myHelper: PropTypes.func.isRequired,
};
MyComponent.defaultProps = {
// set by default to babel-provided method
myHelper: myHelper,
};
.. 그리고, 예를 들어, enzyme를 사용하여 시험에서 그 :
const myHelperMock = jest.fn();
const wrapper = shallow(
<MyComponent
myHelper={myHelperMock}
/>
);
는이에 대한 샘플 자식의 repo를 제공 할 수 있습니까? –
코드에 'MyHelper'를 사용하는 방법에 대한 코드 샘플을 항상 제공하십시오. – Bwaxxlo