【发布时间】:2021-11-09 08:16:55
【问题描述】:
我正在对一个组件进行单元测试,该组件利用react-lazyload 来延迟加载内容。在我的单元测试中渲染时,我注意到 Lazyload 没有渲染内容并且它的占位符正在显示。我尝试使用带有 async/await 的 waitFor 来等待延迟加载的内容在下一个滴答周期中呈现,但它仍然失败,screen.debug() 仍然在 dom 中显示占位符。
有什么方法可以测试这样的组件吗?这是我尝试过的:
render(<WrapperComponent />)
await waitFor(() => {
expect(screen.getByText('Lazily loaded text!')).toBeInTheDocument()
});
// source code
import LazyLoad from 'react-lazyload';
const WrapperComponent = () => {
return (
<div>
<LazyLoad placeholder="Loading..." >
<div>Lazily loaded text!</div>
</LazyLoad>
</div>
);
}
延迟加载的内容有一个 div,上面有预期的文本。
【问题讨论】:
标签: reactjs jestjs react-testing-library react-lazy-load