React 测试库来覆盖延迟负载

问题描述

如何覆盖 React 测试库中的延迟加载组件。

import React,{lazy} from 'react';
const ownerInfo = lazy(() => import('../abc'))

const compone = () => {
  return <Suspense><abc /></Suspense>
}
export default compone

test.spec.js

 import React from 'react'
 import {render,fireEvent} from '@testing-library/react'
 import configureStore from 'redux-mock-store'

 ...

解决方法

观看视频后,我能够弄清楚如何覆盖延迟负载。假设您有延迟加载组件。

Lazyload.js

import React,{lazy} from 'react'
const LazyComponent = lazy(() => import('./LazyComponent'))
const LazyLoad = () => {
   return (
      <div>
         <div> Lazy component is here: </div>
         <React.Suspense fallback={null}>
             <LazyComponent />
         </React.Suspense>
      </div>
   )
}
export default LazyLoad

LazyComponent.js

import React from 'react'
export default () => <div>I am lazy ! </div>

lazyLoad.spec.js

import React from 'react'
import {render,waitFor } from 'react-testing-library'
import LazyLoad from 'LazyLoad'

test('renders lazy component',async () => {
    const { getByText } = render(<LazyLoad />)
    await waitFor(() => expect(getByText('I am lazy !' )).toBeInTheDocument())
})

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...