Javascript ReactDOM.findDOMNode未按预期工作
我被指派去修复一些失败的笑话测试。这里有一个例子: 这是checkboxGroup.spec.js: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
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);