CodeBlanks Logo Icon CodeBlanks

Integration test

Integration test yazmayı öğrenirsin.

Integration test

Integration test, birden çok bileşenin birlikte çalıştığını doğrular. Birim test tek bir fonksiyonu yalıtırken, integration test tüm akışı exercise eder.

Dart'ta integration_test paketi gerçek bir ortamda çalışır. Widget testleri için testWidgets kullanılır; uçtan uca akış sınanır.

Avantaj: bileşenler arası entegrasyon hataları yakalanır. Dezavantaj: birim testten yavaştır. Bu yüzden az sayıda integration, çok sayıda birim test önerilir.

Beklenti ve kurulum

Testlerin temel taşı expect(actual, expected) beklemesidir. setUp her testten önce, tearDown her testten sonra çalışır.

Integration testlerde setUp gerçek bir veritabanı veya HTTP sunucusu başlatabilir. Bu, testin gerçekçi olmasını sağlar ama yavaşlatır.

group('toplama', () { ... }) ile ilgili testler gruplanır. Grup başına ayrı setUp yazılabilir; bu, test organizasyonunu düzenler.

Uygulama Calculator ve expect tanımla

Bir Calculator sınıfı tanımla: int add(int a, int b) => a + b;. Bir void expect(dynamic actual, dynamic expected, String label) fonksiyonu tanımla: içeriği { if (actual == expected) { print('PASS: $label'); } else { print('FAIL: $label'); } }. main içinde final calc = Calculator(); yarat ve expect(calc.add(2, 3), 5, 'add'); çağır.

Başlangıç kodu

main.dart
void main() {
  // Calculator sınıfını tanımla (add metodu)
  // expect fonksiyonunu tanımla (PASS/FAIL yazdırır)
  // bir Calculator yarat; add(2,3) için expect çağır
}

Örnek çözüm

main.dart
class Calculator {
  int add(int a, int b) => a + b;
}

void expect(dynamic actual, dynamic expected, String label) {
  if (actual == expected) {
    print('PASS: $label');
  } else {
    print('FAIL: $label');
  }
}

void main() {
  final calc = Calculator();
  expect(calc.add(2, 3), 5, 'add');
}

Beklenen çıktı

PASS: add

Soru ve cevaplar

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

1 Integration test neyi doğrular?

  • Tek bir fonksiyonu
  • Bileşenlerin birlikte çalışmasını Doğru cevap
  • Bir satır kodu
  • Yalnızca import'ları

Açıklama: integration test çoklu bileşen akışını doğrular.

2 test fonksiyonu

Soru
void main() {
  ____('toplama çalışır', () {
    expect(2 + 3, 5);
  });
}
Cevap
void main() {
  test('toplama çalışır', () {
    expect(2 + 3, 5);
  });
}

Açıklama: test(...) ile bir test bildirilir.

3 Test parçalarını eşleştir

Kavram Anlamı
integration_test Paket
testWidgets Widget testi
expect Doğrulama
setUp Ön hazırlık

Uzman bölümündeki tüm dersler