9

我有一个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>
)

4

1 回答 1

5

您将不得不使用酶的坐骑

mount当您需要等待组件渲染子组件而不是仅渲染单个节点(如shallow.

于 2016-05-21T00:51:50.373 回答