使用JSDom,mocha,chai和ReactTestUtils测试Im。
我的一个组件有三个单选按钮,当检测到更改时(onChange
)将运行一个函数。
一切都在手动测试中有效,但我在使用simulate.Click
时似乎无法触发该功能。
var FrequencyFormInstance = ReactTestUtils.findRenderedComponentWithType(rootElement, FrequencyForm);
var frequencyNode = ReactDom.findDOMNode(FrequencyFormInstance);
var oneOfTheRadioButton = frequencyNode.children[1].children[2];
ReactTestUtils.Simulate.click(oneOfTheRadioButton);
然后一些断言告诉我组件内部的函数从未运行过,因此它从未检测到更改(点击单选按钮)。
任何线索为什么?
答案 0 :(得分:0)
这是我在此讨论的内容:https://github.com/facebook/jest/issues/242
基本上你需要使用更改,因为它是一个输入,但也传递额外的数据。
var FrequencyFormInstance = ReactTestUtils.findRenderedComponentWithType(rootElement, FrequencyForm);
var frequencyNode = ReactDom.findDOMNode(FrequencyFormInstance);
var oneOfTheRadioButton = frequencyNode.children[1].children[2];
ReactTestUtils.Simulate.change(checkbox.getDOMNode(), {"target": {"checked": true}});