正确测试作为道具传入的组件

时间:2018-11-20 16:52:37

标签: reactjs sinon enzyme

在下面的示例中,我有一个名为<BigList />的组件,该组件接受称为toggleComponent的props组件。然后,我将该组件传递到render方法中,这是设置步骤,因此我可以使用多种不同类型的切换组件。我遇到的问题是如何在要传递给<BigList />的组件上正确测试prop方法。因此,我的代码覆盖率下降了,我不确定在这里如何模拟onChange处理程序。

<BigList
  title="Some Props"
  toggleComponent={
    <Checkboxt
      onChange={() =>
        someMethod()
      }
    />
  }
>
  <Checkbox
    onChange={() =>
      anotherMethod()
    }
  />
</BigList>

使用酶和西诺(Sinn),我尝试做类似的事情,但无济于事。我最终遇到与无法访问道具有关的错误。我只想确保为toggleComponent道具的change事件触发onChange处理程序。

const component = shallow(
  <ParentComponent />
);
const event = {target: {name: "event", value: "event value"}};
const toggleComponent = component.find('BigList').at(1).props().toggleComponent;
toggleComponent.props().onChange = stub();
toggleComponent.simulate('change', event);

t.equal(
  toggleComponent.onChange.callCount,
  1,
  'Should call onChange'
);

0 个答案:

没有答案