在下面的示例中,我有一个名为<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'
);