如何用酶的安装方法测试反应成分

时间:2019-01-07 11:52:56

标签: reactjs testing jestjs enzyme

我正在尝试使用库的mount方法来呈现自定义组件,但是它失败并出现错误

Invariant Violation: Tester.render(): A valid React element (or null) must be returned. You may have returned undefined, an array or some other invalid object.

连同一些令人讨厌的堆栈跟踪。

这是代码段

import React from 'react'
import {shallow, mount, render} from 'enzyme'


describe('Dashboard', () => {
    let testComp;
    beforeEach(()=>{
        testComp = mount(  <UserDashboard />  )
    });

    it('should render self without breaking.', () => {
        expect(testComp).not.toBe(null)
    })

})

但是我注意到问题不在于UserDashboard组件,因为当我用一个简单的div元素替换它时,仍然遇到相同的错误。

testComp = mount(  <div />  )

shallowrender方法工作得很好,但是mount方法确实很固执。

请问我是测试反应组件的新手,对于为什么会发生这种情况的任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:1)

这实际上是我的反应版本( react v15.6.2 )和我使用的酶适配器( enzyme-adapter-react-16 )之间的兼容性问题。通常应该是 enzyme-adapter-react-15

对于有相同问题的任何人,请确保访问this link,以了解如何在您的react版本中配置和使用酶。感谢@nubinub提供的链接