CodeBlanks Logo Icon CodeBlanks

Mock service worker

MSW ile API isteklerini taklit etmeyi öğrenirsin.

Mock Service Worker

MSW, ağ isteklerini test ortamında yakalar ve sahte yanıtlar döndürür. setupServer ile bir sunucu kurar, http.get ile yolu kaydedersin.

Bir işleyici HttpResponse.json(...) ile yanıt döndürür. Test dosyasında beforeAll(() => server.listen()) ve afterAll(() => server.close()) çağrılır.

Böylece bileşen gerçek API olmadan doğru çekme davranışını test eder.

İşleyici ve yanıt

Bir MSW işleyicisi http.get('/api/user', resolver) biçimindedir. resolver, istek bilgilerini alır ve bir HttpResponse döndürür.

Durum kodu vermek için HttpResponse.json(data, { status: 201 }) kullanırsın. Hata senaryosunu test etmek için HttpResponse.error() döndürürsün.

Tüm işleyiciler bir dizi içinde setupServer'a verilir.

Uygulama MSW şunucusunu yaz

MSW şunucusunu yaz. setupServer çağır, içine http.get('/api/user', () => HttpResponse.json({ name: 'Ayşe' })) ekle. Sunucuyu dışa aktar.

Başlangıç kodu

App.jsx
// MSW sunucusunu buraya yaz

Örnek çözüm

App.jsx
import { setupServer } from 'msw/node';
import { http, HttpResponse } from 'msw';

const server = setupServer(
  http.get('/api/user', () => HttpResponse.json({ name: 'Ayşe' }))
);
export default server;

Soru ve cevaplar

Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.

1 Boşluğu doldur: MSW sunucusu kur

Soru
import { setupServer } from 'msw/node';
import { http, HttpResponse } from 'msw';

const server = ____(
  http.get('/api/user', () => HttpResponse.json({ name: 'Ayşe' }))
);
Cevap
import { setupServer } from 'msw/node';
import { http, HttpResponse } from 'msw';

const server = setupServer(
  http.get('/api/user', () => HttpResponse.json({ name: 'Ayşe' }))
);

Açıklama: setupServer ile sunucu kurulur.

2 MSW'de hata senaryosu nasıl test edilir?

  • Gerçek sunucuyu kapatıp
  • HttpResponse.error() döndürerek Doğru cevap
  • fetch'i null yaparak
  • try/catch ile sarmalayarak

Açıklama: HttpResponse.error() ile hata yanıtı verilir.

3 MSW kavramlarını eşleştir

Kavram Anlamı
setupServer Sunucuyu kurar
http.get Yolu yakalar
HttpResponse.json Sahte yanıt verir
server.listen Dinlemeye başlar

İleri seviye bölümündeki tüm dersler