在 JEST 中为 React 文件编写测试用例时,我收到此错误。以下是我的示例代码:
search_basr_test.js
jest.autoMockOff();
global.React = require('react/addons');
jest.setMock('../stores/browser_store.jsx');
beforeEach(function() {
var search_bar = require('../components/search_bar.jsx');
});
var TestUtils = React.addons.TestUtils;
describe("Test", function() {
it("should render Test", function() {
var test = TestUtils.renderIntoDocument(<search_bar/>);
expect(test).toBeDefined();
});
it("renders a list in a box with proper CSS classes", function() {
var test = TestUtils.renderIntoDocument(<search_bar/>);
let box = TestUtils.findRenderedDOMComponentWithTag(test, "div");
expect(box.className).toEqual("sidebar__collapse");
});
});
search_bar.jsx
return (
<div>
<div
className='sidebar__collapse'
onClick={this.handleClose}
>
<span className='fa fa-angle-left'></span>
</div>
<span
className='search__clear'
onClick={this.clearFocus}
>
{'Cancel'}
</span>
}
有人能帮我解决这个问题吗?
最佳答案
复合组件是包含 React 组件的组件(不是 div、span...) 方法“findRenderedDOMComponentWithTag”接受复合组件的参数。
尝试直接在您的情况下解析组件(jquery、js...),因为它不是复合组件
关于reactjs - 错误 : Invariant Violation: findAllInRenderedTree(. ..):实例必须是复合组件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34433771/