reactjs - Enzyme,如何访问通过 props 传递的组件

标签 reactjs enzyme

我试图在 MyComponent 中测试的是 Switch 组件的 checked 属性的值,它是 的属性FormControlLabel 组件:

class MyComponent extends Component {

 (...)

 render() {
  return (
   <FormControlLabel
    name={`formControl`}
    control={
      <Switch
        name={`switch`}
        data
        checked={this.state.isChecked}
        onClick={this.handleChange}
        value={checked}
        />
    }
    />
  );
 }
}

我可以像这样访问 FormControlLabel 组件:

const wrapper = shallow(<MyComponent />);

wrapper.find('[name="formControl"]');

我尝试像这样访问 Switch 组件,但它不起作用:

wrapper.find('[name="switch"]');

如何访问 Switch 组件的 checked 属性?

应用程序编程接口(interface)
版本
  • enzyme :3.3.0
  • react :16.2.0
适配器
  • enzyme 适配器-react-16

最佳答案

好吧,我刚刚找到了一个解决方案:

expect(wrapper.find('[name="formControl"]').prop('control').props.checked).toEqual(true);

关于reactjs - Enzyme,如何访问通过 props 传递的组件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50505694/

相关文章:

javascript - OnBlur 没有以正确的方式被调用 - Jest enzyme

javascript - 按钮回调中的日志语句显示未定义

javascript - 除了自定义节点服务器之外,还有替代方法 next-i18next 来获取语言包吗?

reactjs - React 库中的 React hooks 给出无效的 hook 调用错误

unit-testing - Enzyme Mock ToastAndroid React Native 组件

reactjs - 测试依赖于其他副作用(或其他测试)的 React Hooks 副作用

reactjs - React recaptcha google 根本没有显示

javascript - 如何强制子组件重新渲染?

javascript - "Cannot read property ' setState ' of undefined"即使它是绑定(bind)的

javascript - 为 React 编写测试的正确方法