rah*_*aha 2 unit-testing reactjs react-testing-library msw
我正在使用 MSW(模拟服务工作线程)通过 React 测试库来模拟我的 React 测试中的 HTTP 响应。但是,在某些反应组件中,我有一些加载状态,直到响应完成。
为了测试中间加载状态,有没有办法暂停正在进行的 Service Worker API 并进行一些测试(这样可以保证测试的一致性),然后继续进行进一步的测试?
首先,使用 React 测试库很可能意味着您正在谈论 Node.js 中的测试。Node.js 中没有 Service Worker API,因此我们可以放弃 Worker 来解决您的用例。
似乎没有实际需要暂停请求来实现您想要的目的。请注意,大多数测试框架会立即执行断言,一旦底层代码匹配(即您的 UI 处于加载状态),您就不会遇到任何获取断言的问题。在响应中添加短短 100 毫秒的延迟就足以让 Jest 看到存在加载状态并将断言标记为已通过:
it('displays the loading state', () => {
server.use(
rest.get('/resource', (req, res, ctx) => {
return res(ctx.delay(100), /* the rest of the mocked response */)
})
)
render(<YourComponent />
// ...assert the loading state of the UI.
})
Run Code Online (Sandbox Code Playgroud)
尝试一下这种方法,如果您有任何问题,请告诉我。
| 归档时间: |
|
| 查看次数: |
1868 次 |
| 最近记录: |