我在测试React
使用react-loadable
. 比如说,我有一个Button
组件,根据它是否接收到一个icon
道具,它会像这样加载一个Icon
组件:
按钮.js
const LoadableIcon = Loadable({
loader: () => import('./Icon'),
loading: () => <div>Loading...</div>
})
function Button(props) {
return (
<button
onClick={props.onClick}>
{props.icon &&
<LoadableIcon name={props.icon} />}
{props.children}
</button>
)
}
然而,当我测试这个组件时,Icon
还没有加载,而是测试只找到<div>Loading...</div>
元素......
Button.test.js
import React from 'react'
import {render} from 'react-testing-library'
import Button from '../Button'
describe('Button', () => {
it('renders icon correctly', () => {
const {getByText} = render(
<Button
icon='add'
/>
)
expect(getByText('add')).toBeInTheDocument()
})
})
有没有一种优雅的方法可以在不使用实际setTimeout
s 的情况下处理这种情况?