MSW
오프라인 환경이나 아직 백엔드 API가 없을 때, 실제 백엔드 API를 사용하는 것처럼 테스트 할 수 있는 서비스 워커의 기능을 활용.
MSW 설치
npm i -D msw
Setting
가짜 API 요청을 구현하기 위한 handler 코드를 만들어야 한다. rest api를 사용할 경우 'rest'를 import 한다.
import { rest } from 'msw'
const BASE_URI = 'http://localhost:3000'
const handlers = [
rest.get(`${BASE_URI}/products`, (req, res, ctx) => {
const { products } = fixtures
return res(
ctx.status(200),
ctx.json({products})
)
})
]
export default handlers
setupWorker()
함수를 불러와서 서비스 워커를 생성해 주고 만든 handlers를 인자로 넘긴다.
// src/mocks/server.ts
import { setupServer } from 'msw/node'
import handlers from './handlers'
const server = setupServer(...handlers)
jest에서 사용할 수 있도록 설정해주기
// src/setupTests.ts
import server from './mocks/server'
// jest 살행하면 바로 실행
beforeAll(() => server.listen({ onUnhandledRequest: 'error' }))
// 실행될 때 마다 초기화
afterEach(() => server.resetHandlers())
// jest 끝날 때
afterAll(() => server.close())
Last updated