Javascript ReactDOM.findDOMNode未按预期工作

Javascript ReactDOM.findDOMNode未按预期工作,javascript,reactjs,jestjs,Javascript,Reactjs,Jestjs,我被指派去修复一些失败的笑话测试。这里有一个例子: 这是checkboxGroup.spec.js: import React from 'react'; import ReactDOM from 'react-dom'; import TestUtils from 'react-addons-test-utils'; import CheckboxGroup from '../components/core/CheckboxGroup'; import Checkbox from '../co

我被指派去修复一些失败的笑话测试。这里有一个例子:

这是checkboxGroup.spec.js:

import React from 'react';
import ReactDOM from 'react-dom';
import TestUtils from 'react-addons-test-utils';
import CheckboxGroup from '../components/core/CheckboxGroup';
import Checkbox from '../components/core/Checkbox';

describe('CheckboxGroup', () => {
it('should exist', () => {
    expect(CheckboxGroup).toBeDefined();
});

it('should add checkboxes as children', () => {
    class CheckboxGroupSample extends React.Component {
        selected = [];
        render() {
            return (
                <div>
                    <CheckboxGroup selected={ this.selected }>
                        <Checkbox value={ 1 }></Checkbox>
                        <Checkbox value={ 2 }></Checkbox>
                        <Checkbox value={ 3 }></Checkbox>
                    </CheckboxGroup>
                    Selected: { this.selected.toString() }
                </div>
            );
        }
    }

    const checkboxGroup = TestUtils.renderIntoDocument(<CheckboxGroupSample />);

    const checkboxGroupNode = ReactDOM.findDOMNode(checkboxGroup);

    // Verify the correct number of children are created
    expect(checkboxGroupNode.children.length).toEqual(3);
});

这段代码几乎是一年前写的——失败可能是因为更新了React和/或Jest,或者其他原因。我确信测试在某个时间点通过。

进一步调查后,我发现预期应为:

expect(checkboxGroupNode.childNodes[0].children.length).toEqual(3);

这是一个玩笑/反应变化的结果,还是测试一开始写得不正确?

进一步调查后,我发现预期应该是:

expect(checkboxGroupNode.childNodes[0].children.length).toEqual(3);
这是一个玩笑/反应变化的结果,还是测试一开始写得不正确

expect(checkboxGroupNode.childNodes[0].children.length).toEqual(3);