我在控制台中通过React和Jest + Enzyme测试面临以下警告/问题:
console.error node_modules/react/cjs/react.development.js:172
Warning: React.createElement: type is invalid -- expected a string (for built-in components)
or a class/function (for composite components) but got: object.
生产代码正在使用组件的裸版本(由HoC导出)。
lib可以像我一样在需要时访问原始BaseComponent
。
从lib / HoC导出的组件示例如下:
EnrichedComponent.WrappedComponent = BaseComponent;
所以我这样访问(它是一个按钮)
const { WrappedComponent: BaseButton } = Button;
// usage example
<BaseButton>
hi!
</BaseButton>
在测试中,我需要模拟lib和导出的部分,所以我执行以下操作:
jest.mock('myLib', () => ({
Button: {
WrappedComponent: 'base-button-component',
displayName: 'button-component',
},
}));
该问题发生在测试中。我能够毫无故障地对其进行测试,但是我得到了上述警告。
有什么主意吗?是我应该关心的事情还是不值得的事情?