如何使用 Enzyme 等待 Mocha 中 React 组件的完整渲染?

How to wait for complete render of React component in Mocha using Enzyme?

我有一个呈现 Child 组件的 Parent 组件。 Child 组件首先呈现独特的道具,如 'name',然后父组件呈现常见的道具,如 'type',并使用 React.Children.map 将这些道具注入 Child 组件.

我的问题是 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>
)

您将不得不使用酶 mount

mount 在您需要等待组件渲染子节点时为您提供完整的 DOM 渲染,而不是像 shallow.

那样只渲染单个节点