reactjs - 如何使用 Jest 和 Enzyme 测试嵌套 prop

标签 reactjs jestjs enzyme

我有一个组件,其 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/

相关文章:

javascript - React/Redux - 在渲染之前调整状态是否安全

typescript - Jest spyOn 不适用于 typescript : "Property ' mockRestore' is missing in type 'Spy' "

javascript - 测试使用 jQuery 和 window 对象的 React 组件

reactjs - enzyme 无法识别 lodash.flowright

reactjs - UseEffect 钩子(Hook)的 Jest 测试用例

javascript - 如何处理 react-router 子路由中抛出的异常

javascript - REACT 给出了一些我不知道为什么的错误

javascript - 在 React/Redux 中模块化代码

jestjs - 在所有 Jest 测试中重复使用相同的 Puppeteer 实例

javascript - 如何在jest和enzyme中设置useState Hook的初始状态?