如何检查组件道具的组件类型?

时间:2019-07-19 16:03:08

标签: javascript reactjs enzyme

我有一个非常简单的FormControlLabel,其中包含用于“控件”和“标签”的组件:

  const MyComponent = () =>
    <FormControlLabel
      control={<CheckBox />}
      label={<Typography>Check please!</Typography}
    />

在测试中,我想检查一下我是否具有正确的组件,其中wrapper是上面的组件:

it('uses a checkbox for the control', function() {
  expect(wrapper.prop('control').type()).to.equal(Checkbox);
})

除了我得到`TypeError wrapper.prop(...)。type不是一个函数。

如果我打印出wrapper.prop('control')是什么,我得到的对象带有类型对象,但没有函数。

如果我用shallow包装每个道具,我现在将平等地检查组件,并且它们不匹配。 (这不是我期望要做的)

我看不到如何使type()正常工作。

如何检查道具的类型?

2 个答案:

答案 0 :(得分:0)

应该是

  expect(wrapper.props().control.type).to.equal('Checkbox');

答案 1 :(得分:0)

我设法使它可以使用:

expect(wrapper.prop('control').type).to.deep.equal(Checkbox);

尽管我不知道这是否是最简洁的方法。