我有一个Parent
渲染组件的Child
组件。该Child
组件首先呈现独特的道具,如“名称”,然后父组件呈现常见的道具,如“类型”,并Child
使用React.Children.map
.
我的问题是 Enzyme 无法检测到Section
组件呈现的常用道具,因此我无法有效测试是否添加了常用道具。
考试:
const wrapper = shallow(
<Parent title="Test Parent">
<div>
<Child
name="FirstChild"
/>
</div>
</Parent>
)
// console.log(wrapper.find(Child).node.props) <- returns only "name" in the object
expect(wrapper.find(Child)).to.have.prop("commonPropOne")
expect(wrapper.find(Child)).to.have.prop("commonPropTwo")
expect(wrapper.find(Child)).to.have.prop("commonPropThree")
注入常用道具的代码:
const Parent = (props) => (
<div
className="group"
title={props.title}
>
{ React.Children.map(props.children, child => applyCommonProps(props, child)) }
</div>
)