我正在尝试在我的 enzyme 单元测试中检查组件的默认状态。为此,我具有以下组件:
import React, { Component } from 'react';
class Picker extends Component {
constructor(props) {
super(props);
this.state = {
sources: true
};
}
}
...
export default Picker;
最后,我的单元测试如下:
it('should contain `everything` as a default value', () => {
const wrapper = mount(<Picker name='cnn' />);
expect(wrapper.state('sources')).to.exist()
});
我在这里面临的问题是,我无法获取组件的默认状态。如果我没看错,函数wrapper.state('sources')应该返回'true'。
我还有其他步骤想念吗?我在用着:
最佳答案
我为此付出了很多努力!由于Picker
是Component
的子类,因此您要查找的状态实际上存在于wrapper.instance()
上,而不是在wrapper
上。shallow
和mount
的“包装器”返回值就是这样:包装器。这不是您要测试的实际组件。我认为它是组件所包围的一个小环境。
为了对组件的状态, Prop 和功能进行断言,我取得了更好的成功:
const component = wrapper.instance()
然后在
component
上,可以调用.state
,.props
和&c。如果您有任何疑问,请告诉我!
关于reactjs - enzyme wrapper.state返回null,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/48010837/