reactjs - React 和 Jest - 使用 PropTypes.instanceOf 测试组件

标签 reactjs testing jestjs

我有一个 React 组件,它使用一个定义为带有 PropTypes.instanceOf(MyClass).isRequired 的 ES6 类实例的属性。 使用模拟类的实例进行测试时,我总是会收到控制台错误:Warning: Failed prop type

我尝试了基于 https://jestjs.io/docs/en/es6-class-mocks 的各种技术和 https://reactjs.org/docs/testing-recipes.html , 但它们都不起作用:类型与预期不匹配(即使类名相同)。

如何在不删除类型检查的情况下使用模拟类测试组件?

最佳答案

看起来我没有在正确的地方定义模拟类:我在 jest.mock 之外定义它,但它应该在内部定义,如下所示:

jest.mock("./MyClass", () => {
  return class {
    /* mock methods here */
  }
});

此外,返回一个函数而不是一个类将不起作用。 当您知道时,就这么简单...

关于reactjs - React 和 Jest - 使用 PropTypes.instanceOf 测试组件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57681669/

相关文章:

javascript - 如何删除React Native中的所有 Prop ?

reactjs - 当scrollTop为零时,在渲染后 react 滚动位置

javascript - 更新数组中的对象值React hooks方式

visual-studio-2010 - 在 VS2010 中执行 BDD 的标准方法是什么?

android - 如何通过 OnClick 操作测试使用 Espresso 启动新 Activity?

javascript - 使用 Selenium WebDriver/Jest 进行测试时如何等待函数被调用?

reactjs - SessionStorage 不会通过挂载时调用的 useEffect 更新状态

python - 在 python 中模拟 redis

typescript - defaultRowRenderer 打破了 Jest 单元测试。 ...对象。<匿名> ...导入 createMultiSort

reactjs - Jest 遇到意外标记,因为试图导入 Jest 无法解析的文件