我正在使用一个 babel 插件,它提供了一个名为 myHelper
的函数,该函数在我要测试的组件中使用(但未导入,因为它作为 babel 插件提供)。
我如何使用 Jest“全局”模拟 myHelper
?
最佳答案
我会让那些组件接受一个 myHelper
属性来选择性地模拟 babel 提供的 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}
/>
);
关于javascript - 如何在 Jest 测试中模拟 babel 插件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47085570/