Integration test
- Node.js kursu
- İleri seviye
- Ders 73/83
- 5 dk
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
// test fonksiyonu ile bir test tanımla
// buraya yaz
// "Test hazır" yazdır
// buraya yazÖrnek çözüm
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?
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
____("toplama", () => { expect(1+1).toBe(2); });
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 |