我可以在下面的代码中的第一个“查找器”中找到一个组件
var myComponent = ReactTestUtils.findRenderedDOMComponentWithClass(myDiv, 'myComponent')
如果我然后使用返回的 Component 对象并使用它来找到更深的对象,如下所示:
var myInput = ReactTestUtils.findRenderedDOMComponentWithClass(myComponent, 'myInput')
我收到此错误:
不变量违规:findAllInRenderedTree(...):实例必须是不变量的复合组件 (node_modules/fbjs/lib/invariant.js:44:15)
我无法弄清楚findRenderedDOMComponentWithClass返回的类型是什么,因为 (a) Javascript 和 (b) ReactTestUtils几乎没有任何文档。
我的整个测试看起来像这样:
import ReactTestUtils from 'react-dom/lib/ReactTestUtils';
describe('simple test', function() {
jsdom({ skipWindowCheck: true });
it('Getting Simulate to Work', function() {
class SomeComponent extends React.Component {
render() {
return (
<div className="myComponent">
<input type="textfield" className="myInput" ></input>
<span className="child1" />
</div>
);
}
}
var myDiv = ReactTestUtils.renderIntoDocument(
<SomeComponent/>
);
var myComponent = ReactTestUtils.findRenderedDOMComponentWithClass(myDiv, 'myComponent')
var myInput = ReactTestUtils.findRenderedDOMComponentWithClass(myComponent, 'myInput')
});
});