反应testUtils模拟单击单击按钮不触发更改

时间:2016-05-17 02:31:37

标签: javascript reactjs reactjs-testutils

使用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);

然后一些断言告诉我组件内部的函数从未运行过,因此它从未检测到更改(点击单选按钮)。

任何线索为什么?

1 个答案:

答案 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}});