react testUtils模拟点击单选按钮而不触发onchange

react testUtils simulate click on a radio button not triggering onchange

本文关键字:onchange 单选按钮 testUtils 模拟 react      更新时间:2023-09-26

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

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

知道为什么吗?

这里讨论的内容如下: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}});