我有一个Parent
组件,它呈现一个Child
组件。 Child
组件首先渲染独特的道具(如“名称”),然后父组件渲染通用道具(如“类型”),并使用React.Children.map
将这些道具注入Child
组件。如何等待Mocha使用酶完成React组件的渲染?
我的问题是酶不能检测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>
)