我正在尝试使用酶库的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 /> )
shallow
和render
方法工作得很好,但是mount
方法确实很固执。
请问我是测试反应组件的新手,对于为什么会发生这种情况的任何帮助将不胜感激。
答案 0 :(得分:1)
这实际上是我的反应版本( react v15.6.2 )和我使用的酶适配器( enzyme-adapter-react-16 )之间的兼容性问题。通常应该是 enzyme-adapter-react-15 。
对于有相同问题的任何人,请确保访问this link,以了解如何在您的react版本中配置和使用酶。感谢@nubinub提供的链接