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

时间:2019-08-27 20:13:32

标签: reactjs testing jestjs

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

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

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

1 个答案:

答案 0 :(得分:0)

似乎我没有在正确的位置定义模拟类:我在jest.mock之外定义了它,但是应该在内部定义它,就像这样:

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

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