CodeBlanks Logo Icon CodeBlanks

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.

Başlangıç kodu

index.js
// test fonksiyonu ile bir test tanımla
// buraya yaz

// "Test hazır" yazdır
// buraya yaz

Örnek çözüm

index.js
test("toplama", () => {
  expect(1+1).toBe(2);
});
console.log("Test hazır");

Beklenen çıktı

Test hazır

Soru ve cevaplar

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

1 Integration test neyi sınar?

index.js
POST /users → DB
  • Birden çok bileşenin birlikte çalışmasını Doğru cevap
  • Yalnızca tek bir fonksiyonu
  • Yalnızca CSS stillerini
  • Yalnızca HTML etiketlerini

Açıklama: Integration test bileşenler arasındaki etkileşimi sınar.

2 test fonksiyon çağrısını tamamla

Soru
____("toplama", () => { expect(1+1).toBe(2); });
Cevap
test("toplama", () => { expect(1+1).toBe(2); });

Açıklama: test() ile bir test tanımlanır.

3 Kavramı rolüne eşle

Kavram Anlamı
integration test Bileşen zincirini sınar
unit test Tek fonksiyonu sınar
Jest Test çerçevesi
expect Doğrulama yapar

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