在浅的Enzyme包装器上调用setProps时的TypeError

时间:2017-08-23 15:55:07

标签: reactjs react-native enzyme

尝试在纯React组件的酶包装上调用TypeError: Cannot read property 'state' of null时,我收到以下错误setProps

我写了一个我想要做的简化版本,测试看起来像这样:

import React from "react"
import {shallow} from "enzyme"

import Simple from "../Simple"

describe("<Simple />", () => {
  it("renders param", () => {
    const wrapper = shallow(<Simple param="foo" />)

    expect(wrapper.text()).toEqual("foo")
    wrapper.setProps({param: "bar"})
    expect(wrapper.text()).toEqual("bar")
  })
})

这是组件:

export default function Simple(props) {
  return props.param
}

我正在使用React 16.0.0-alpha.12,React Native 0.46.4和Enzyme 2.9.1

1 个答案:

答案 0 :(得分:0)

在撰写本文时,根据this GitHub issue,酶还没有支持React 16。

不幸的是,由于React Native 0.43及更高版本需要React 16,React Native和Enzyme目前不兼容。

您的特定问题是否由此不兼容性引起,您可能会发现Enzyme不适合您。

与此同时,您最好使用Jest snapshot tests而不是断言测试。