2

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

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

关于为什么的任何线索?

4

1 回答 1

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}}); 
于 2016-08-31T16:07:11.480 回答