我有一个组件,其props值如下所示:
emailProps = {email: {isOpen: false}};
因此,现在我尝试将isOpen
的值更新为true,并测试prop的值是否已更新。
it('tests after updating isOpen props to true', () => {
wrapper.setProps({ email:{ isOpen: true} });
});
所以,我看到我们可以将道具测试为:
const wrapper = mount(<MyComponent foo={10} />);
expect(wrapper.props().foo).to.equal(10);
因为,在我的情况下,道具isOpen
位于email
内部。那么,我该如何测试呢?
我尝试过:
expect(wrapper.props().email.isOpen).toBe(true);
但是失败了。如何测试嵌套道具?
答案 0 :(得分:1)
我在嵌套状态上也有类似的问题。我以这种方式成功了:
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);