首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用msw有条件地模拟错误响应

如何使用msw有条件地模拟错误响应
EN

Stack Overflow用户
提问于 2021-04-23 06:07:42
回答 1查看 510关注 0票数 1

我正在处理的UI根据收到的响应以不同的方式呈现。我想在收到4xx5xx响应时测试UI。

我的api处理程序看起来像这样:

代码语言:javascript
复制
import { rest } from 'msw';
import { items } from './apiValues';

export const handlers = [
  rest.get('/items/', (_req, res, ctx) => res(ctx.status(200), ctx.json(items))),
];

这将始终返回一个2xx响应,使其在收到4xx5xx响应时无法测试UI,除非我手动更改处理程序,这很累人。

如何测试4xx5xx响应?

EN

回答 1

Stack Overflow用户

发布于 2021-04-23 18:46:59

使用搜索参数控制get请求的响应。

req.body中传递一个变量来控制对post请求的响应是否成功。

请参阅Conditional response

代码语言:javascript
复制
import { setupWorker, rest } from 'msw';

const worker = setupWorker(
  rest.get('/items/', (req, res, ctx) => {
    const error = req.url.searchParams.get('error')
     
    // error response
    if(error === 'network') {
      return res(
        ctx.status(200),
        ctx.json({
          errorMessage: 'Network error',
        }),
      )
    }

    // successful response
    return res(ctx.status(200), ctx.json(items));
  }),
)
票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/67221429

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档