Jest 使用 Mock Service Worker (MSW) 或其他模拟离线网络?
Posted
技术标签:
【中文标题】Jest 使用 Mock Service Worker (MSW) 或其他模拟离线网络?【英文标题】:Jest simulate offline network with Mock Service Worker (MSW) or other? 【发布时间】:2021-06-04 02:16:51 【问题描述】:是否可以将 MSW 与 Jest 一起使用来模拟离线网络条件?或者,非基于 MSW 的解决方案就足够了。我也不想模拟navigator.onLine
,因为我想在网络请求因离线而失败时测试错误路径。
【问题讨论】:
为什么不呢? Jest 在 Node 环境中运行。它不关心网络。如果您可以在 Node 中运行 MSW,则可以使用它。你检查mswjs.io/docs/getting-started/integrate/node了吗? 我知道 MSW 是开玩笑的,我正在尝试确定如何模拟离线网络? 【参考方案1】:是的,您可以模拟网络错误:
rest.get('/user', (_, res) =>
return res.networkError('Custom network error message')
)
这里是相关文档:https://mswjs.io/docs/api/response/network-error
【讨论】:
这是推荐的方法:网络错误相当于请求资源离线时发生的错误。以上是关于Jest 使用 Mock Service Worker (MSW) 或其他模拟离线网络?的主要内容,如果未能解决你的问题,请参考以下文章
jest中的mock,jest.fn()jest.spyOn()jest.mock()
jest中的mock,jest.fn()jest.spyOn()jest.mock()
使用 jest.mock('axios') 时如何模拟拦截器?
使用 Jest 模拟的服务导致“不允许 jest.mock() 的模块工厂引用任何超出范围的变量”错误