CodeBlanks Logo Icon CodeBlanks

Özet - Test ve CI/CD

testWidgets ve CI'ı birleştirerek kalıte kapısı yaparsın.

flutter_test ve CI birleşimi

Bir CI workflow'unda flutter test adımı, test/ klasöründeki tüm testWidgets testlerini çalıştırır. Testler geçerse CI yeşil olur ve kod merge edilebilir; testler başarısız olursa CI kırmızı olur ve merge engellenir. Bu, kalite kapısı oluşturur.

steps:
  - uses: actions/checkout@v4
  - uses: subosito/flutter-action@v2
  - run: flutter test

Uygulama İki buton testi

main içinde 'iki buton' adlı bir testWidgets testi yaz. pumpWidget ile MaterialApp(home: Row(children: [ElevatedButton(onPressed: () {}, child: Text('A')), ElevatedButton(onPressed: () {}, child: Text('B'))])) render et. find.byType(ElevatedButton) ve findsNWidgets(2) ile doğrula. Son olarak 'ci: flutter test' yazdır.

Başlangıç kodu

main.dart
import 'package:flutter_test/flutter_test.dart';
import 'package:flutter/material.dart';

void main() {
  // 'iki buton' adlı testWidgets testi yaz
  // pumpWidget ile MaterialApp içinde Row ve iki ElevatedButton render et
  // find.byType ile ElevatedButton bul ve 2 adet bulunduğunu doğrula
  // son olarak 'ci: flutter test' yazdir
}

Örnek çözüm

main.dart
import 'package:flutter_test/flutter_test.dart';
import 'package:flutter/material.dart';

void main() {
  testWidgets('iki buton', (tester) async {
    await tester.pumpWidget(
      MaterialApp(
        home: Row(
          children: [
            ElevatedButton(onPressed: () {}, child: const Text('A')),
            ElevatedButton(onPressed: () {}, child: const Text('B')),
          ],
        ),
      ),
    );
    expect(find.byType(ElevatedButton), findsNWidgets(2));
  });
  print('ci: flutter test');
}

Beklenen çıktı

ci: flutter test

Soru ve cevaplar

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

1 CI'da flutter test adımı ne yapar?

  • Cihaza yükler
  • Tüm testleri çalıştırır Doğru cevap
  • Kodu derler
  • Paket yükler

Açıklama: flutter test komutu test/ klasöründeki tüm _test.dart dosyalarını çalıştırır; CI bu adımla kalite kapısı kurar.

2 flutter test komutu

Soru
      - run: ____
Cevap
      - run: flutter test

Açıklama: CI workflow'unda - run: flutter test satırı tüm testleri çalıştırır; flutter run uygulamayı cihazda açar, flutter build paket üretir.

3 Test ve CI birleşimi

Kavram Anlamı
flutter_test Test paketi
testWidgets Test fonksiyonu
GitHub Actions CI aracı
flutter test Test çalıştırma komutu

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