我正在尝试使用 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 /> )
shallow
和 render
方法工作得很好,但是 mount
方法真的很顽固。
拜托,我是测试 React 组件的新手,非常感谢任何关于为什么会发生这种情况的帮助。
最佳答案
这实际上是我的 react 版本 (react v15.6.2) 和我使用的 enzyme 适配器 (enzyme-adapter-react-16) 之间的兼容性问题。它通常应该是 enzyme-adapter-react-15。
对于遇到同样问题的任何人,请务必访问 this link关于如何在您的 React 版本中配置和使用 enzyme 。感谢@nubinub 提供链接
关于reactjs - 如何用 enzyme 的mount方法测试React组件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54073939/