模拟服务工作者 msw

Mock Service Worker (MSW) 是一个用于在前端开发中模拟 HTTP 请求的 JavaScript 库。它通过拦截浏览器和 Node.js 中的网络请求,允许开发者在不依赖真实后端的情况下,创建、测试和调试应用程序。核心功能包括模拟 REST 和 GraphQL API、处理各种网络场景(如错误和延迟)、以及无缝集成到单元测试和集成测试中。适用于前端开发、API 模拟、集成测试、开发环境搭建等场景。关键词:API 模拟, 请求拦截, 集成测试, 前端开发, Mock Service Worker, 网络请求模拟, 测试驱动开发。

测试 0 次安装 0 次浏览 更新于 2/26/2026

name: msw description: Mock Service Worker API 模拟、请求处理器和集成测试。 allowed-tools: Read, Write, Edit, Bash, Glob, Grep

MSW 技能

使用 Mock Service Worker 进行 API 模拟的专家级协助。

能力

  • 创建请求处理器
  • 模拟 REST 和 GraphQL API
  • 处理网络错误
  • 与测试集成
  • 在开发中使用

处理器示例

import { http, HttpResponse } from 'msw';

export const handlers = [
  http.get('/api/users', () => {
    return HttpResponse.json([
      { id: '1', name: 'John' },
      { id: '2', name: 'Jane' },
    ]);
  }),

  http.post('/api/users', async ({ request }) => {
    const body = await request.json();
    return HttpResponse.json({ id: '3', ...body }, { status: 201 });
  }),

  http.get('/api/users/:id', ({ params }) => {
    return HttpResponse.json({ id: params.id, name: 'John' });
  }),
];

测试集成

import { setupServer } from 'msw/node';
import { handlers } from './handlers';

const server = setupServer(...handlers);

beforeAll(() => server.listen());
afterEach(() => server.resetHandlers());
afterAll(() => server.close());

目标流程

  • api-mocking
  • integration-testing
  • frontend-development