Node.js
Integration test
Integration test yazmayı öğrenirsin.
Integration test
Bir integration test, birden çok bileşenin birlikte çalışmasını doğrular. Birim testi (unit test) tek bir fonksiyonu sınarken, integration test bir HTTP isteğinin veritabanına kadar tüm zinciri dener. Gerçek hataların çoğu bileşenler arası etkileşimde ortaya çıkar.
Örnek: bir POST /users isteği atar, yanıtı kontrol eder ve veritabanında kaydın oluştuğunu doğrular. Bu, hem route hem veritabanı hem de doğrulama kodunu birlikte sınar. Integration testler birim testlerden daha yavaştır; ama gerçek hataları daha iyi yakalar. Node.js'te Mocha, Jest veya Vitest çerçeveleri kullanılır. Bu grupta supertest ile HTTP integration testleri, test veritabanı, coverage ve E2E (uçtan uca) testleri öğreneceksin.
Test çerçeveleri
Node.js'te popüler test çerçeveleri: Jest, Mocha, Vitest. Jest tek pakette hem test koşucusu hem de doğrulama kütüphanesi sunar. Mocha yalnızca koşucudur; chai gibi bir doğrulama kütüphanesiyle birlikte kullanılır.
Örnek: test("toplama", () => { expect(1 + 1).toBe(2); });. Jest'te test fonksiyonu bir test tanımlar, expect doğrulama yapar. describe ile testleri gruplarsın. Integration testlerde genellikle beforeAll ile sunucu başlatılır, afterAll ile kapatılır. Testler npm test ile çalıştırılır. Jest, paralel koşma ve snapshot testleri gibi gelişmiş özellikler de sunar. Test çerçevesi seçimi, ekosistem ve proje ihtiyacına bağlıdır.
Uygulama Basit bir test yaz
test("toplama", () => { expect(1+1).toBe(2); }) şeklinde bir test tanımla. console.log ile "Test hazır" yaz.
Örnek çözümü göster
test("toplama", () => {
expect(1+1).toBe(2);
});
console.log("Test hazır");
Kendini test et
-
Integration test neyi sınar?
POST /users → DB
- Birden çok bileşenin birlikte çalışmasını
- Yalnızca tek bir fonksiyonu
- Yalnızca CSS stillerini
- Yalnızca HTML etiketlerini
Cevabı göster
Birden çok bileşenin birlikte çalışmasını — Integration test bileşenler arasındaki etkileşimi sınar.
-
test fonksiyon çağrısını tamamla
____("toplama", () => { expect(1+1).toBe(2); });
Cevabı göster
test("toplama", () => { expect(1+1).toBe(2); });
-
Kavramı rolüne eşle
- integration test
- Bileşen zincirini sınar
- unit test
- Tek fonksiyonu sınar
- Jest
- Test çerçevesi
- expect
- Doğrulama yapar
Sıradaki ders: Supertest