在我正在做的项目中,有一些命名的导出,如下面的对象:
export const object = {
component: React.lazy(() => import('some-component'))
}
字符串
(They有更多的属性,但为了简洁起见,我只展示这一个)
问题
当我尝试使用Jest测试它时,我无法在React.lazy中进行测试:
x1c 0d1x的数据
我试着嘲笑React.lazy,但没有成功:
jest.mock('react', () => ({
lazy: () => {
return 'lazy'
},
}))
describe('Auth route object', () => {
it('', () => {
expect(auth).toBeDefined()
expect(auth[0].component).toBe('lazy')
})
})
型
这返回passed
,但它一直在抱怨覆盖率。
我怎么能模拟/测试它呢?
附言:我需要至少90%的覆盖率在这个文件,这就是为什么我不能只是忽略它。
1条答案
按热度按时间rggaifut1#
您可以使用
@testing-library/react
来测试React.lazy()
方法。此外,如果延迟加载的组件过于复杂,并且您只想测试包含该组件的父组件,则可以使用jest.mock()
方法来提供子组件的模拟版本。例如
index.tsx
:字符串
OtherComponent.tsx
:型
index.test.tsx
:型
测试结果:
型
软件包版本:
型