reactjs - 错误 : Invariant Violation: findAllInRenderedTree(. ..):实例必须是复合组件

标签 reactjs jestjs reactjs-testutils

在 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/

相关文章:

javascript - 无法使用 React 和 Bootstrap 创建自定义样式

javascript - 如何用 Jest 测试 JSX Vue 组件

reactjs - 测试鼠标滚轮事件

reactjs - 如何通过 Jest 测试 React PropTypes?

JavaScript 未在 VSCode 中格式化?

javascript - Material UI Autocomplete 的 chop 值(复制 Material UI Multiple Select 的 chop renderValue)

reactjs - 在根项目中找不到任务 'bundleReleaseJsAndAssets'

javascript - 从客户端测试 API

javascript - Jest - 在被模拟的异步函数中调用检查本地存储

unit-testing - React.js 和 Jasmine Spies