Integration test
- Dart kursu
- Uzman
- Ders 37/47
- 5 dk
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
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
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
void main() {
____('toplama çalışır', () {
expect(2 + 3, 5);
});
}
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 |