我有一个组件,其 props 值如下所示:
emailProps = {email: {isOpen: false}};
所以,现在我尝试将 isOpen
的值更新为 true 并测试 prop 的值是否已更新。
it('tests after updating isOpen props to true', () => {
wrapper.setProps({ email:{ isOpen: true} });
});
所以,我发现我们可以测试该 Prop :
const wrapper = mount(<MyComponent foo={10} />);
expect(wrapper.props().foo).to.equal(10);
因为,就我而言,属性 isOpen
位于 email
内。那么,我该如何测试呢?
我尝试过:
expect(wrapper.props().email.isOpen).toBe(true);
但是失败了。如何测试嵌套的 props?
最佳答案
我对嵌套状态也有类似的问题。我是这样成功的:
it('receives this.state.user.name as a "name" prop', () => {
expect(header().prop('name')).toEqual(appWrapper.state("user").name);
});
就您而言,它看起来像这样:
expect(wrapper.prop('email').isOpen).toBe(true);
关于reactjs - 如何使用 Jest 和 Enzyme 测试嵌套 prop,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53535696/