์คํ๋ผ์ธ ํ๊ฒฝ์ด๋ ์์ง ๋ฐฑ์๋ API๊ฐ ์์ ๋, ์ค์ ๋ฐฑ์๋ API๋ฅผ ์ฌ์ฉํ๋ ๊ฒ์ฒ๋ผ ํ
์คํธ ํ ์ ์๋ ์๋น์ค ์์ปค์ ๊ธฐ๋ฅ์ ํ์ฉ.
๊ฐ์ง 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())