React

[React] Mock Server Work Create Use Example

차노도리 2023. 6. 2. 00:11
import "@testing-library/jest-dom";

import { server } from "./mocks/server";

// 모든 테스트 서버를 생성
beforeAll(() => server.listen());

// 테스트 이후에 핸들러 초기화
afterEach(() => server.resetHandlers());

// 테스트 이후에 서버 종료
afterAll(() => server.close());

Mock Server

  • 실제 서버와 유사한 동작을 하는 가짜 서버이다.
  • 서버를 향한 네트워크 요청을 가로채서 모의 응답을 내려주는 역할을 한다.

 

Msw 설치

npm install msw

 

api handler 생성

ex) handlers.tsx

import { rest } from "msw";

export const handlers = [
  rest.get("http://localhost:5000/test", (req, res, ctx) => {
    return res(
      ctx.json(
      ...
      )
    );
  }),
];

 

server 생성

ex) server.tsx

  • 위에서 만든 handler 주입
import { setupServer } from "msw/node";
import { handlers } from "./handlers";

// mocking server 생성
export const server = setupServer(...handlers)

 

server config 설정

ex) setupTests.tsx

import "@testing-library/jest-dom";

import { server } from "./mocks/server";

// 모든 테스트 서버를 생성
beforeAll(() => server.listen());

// 테스트 이후에 핸들러 초기화
afterEach(() => server.resetHandlers());

// 테스트 이후에 서버 종료
afterAll(() => server.close());