我正在处理的UI根据收到的响应以不同的方式呈现。我想在收到4xx和5xx响应时测试UI。
我的api处理程序看起来像这样:
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响应,使其在收到4xx或5xx响应时无法测试UI,除非我手动更改处理程序,这很累人。
如何测试4xx和5xx响应?
发布于 2021-04-23 18:46:59
使用搜索参数控制get请求的响应。
在req.body中传递一个变量来控制对post请求的响应是否成功。
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));
}),
)https://stackoverflow.com/questions/67221429
复制相似问题