javascript - 如何在 Jest 测试中模拟 babel 插件?

标签 javascript unit-testing testing mocking jestjs

我正在使用一个 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/

相关文章:

angular - 单元测试 ngAfterViewInit

unit-testing - Microsoft 的 Entity Framework 如何抑制测试驱动开发?

javascript - Nightwatch setValue 方法不起作用

android - 使用 jar 依赖项测试 Android 项目

javascript - 使用 Javascript 更改 CSS 值

javascript - 加载js文件的性能

javascript - SignalR 不适用于 Chrome 和 Internet Explorer

javascript - 设置间隔 slider ,随机起始<div>,如何遍历所有<div>?

c++ - 编写谷歌测试的最佳实践是什么?

unit-testing - 声明仅在 SWI-Prolog 中的单个单元测试范围内正确的事实