Flutter ile mobil entegrasyon testi nasıl yapılır ?
Merhaba ilk yazımda sizlere Flutter ile entegrasyon testi (integration test) nasıl yapılır örnek sayaç (counter) projesi üzerinden göstereceğim.
İlk olarak bir Flutter projesi yaratalım.
flutter create integration_test_example
Evet Flutter projemizi oluşturduk şimdi projeyi favori editörümüz ile açıyoruz.
Editörümüzü açtığımızda projemizin dosya yapısı yukarıdaki gibi karşımıza çıkıyor. Artık entegrasyon testi yapabilmemiz için gerekli adımlara geçebiliriz.
İlk olarak projemizin ana dizininde bulunan pubspec.yaml dosyamızı açıyoruz ve aşağıdaki satırları dev_dependencies altına ekliyoruz.
integration_test:
sdk: flutter
Ardından projemizin ana dizininde integration_test adında bir klasör oluşturuyoruz.
mkdir integration_test
Evet integration_test klasörümüzü oluşturduğumuza göre artık testimizi yazmaya başlayabiliriz. Bunun için ilk olarak integration_test klasörümüzün içerisine app_test.dart adında bir dart dosyası oluşturuyoruz. Test dosyalarımız mutlaka *_test.dart şeklinde olmalı Flutter o dosyanın bir test dosyası olup olmadığını bu şekilde anlıyor.
import 'package:flutter/material.dart';
import 'package:flutter_test/flutter_test.dart';
import 'package:integration_test_example/main.dart' as app;
void main() {
testWidgets("it should see increase counter when click add button",
(tester) async {
app.main();
await tester.pumpAndSettle();
expect(find.text("You have pushed the button this many times:"),
findsOneWidget);
expect(find.text("0"), findsOneWidget);
await tester.tap(find.byIcon(Icons.add));
await tester.pumpAndSettle();
expect(find.text("1"), findsOneWidget);
await tester.tap(find.byIcon(Icons.add));
await tester.pumpAndSettle();
expect(find.text("2"), findsOneWidget);
await tester.tap(find.byIcon(Icons.add));
await tester.pumpAndSettle();
expect(find.text("3"), findsOneWidget);
});
}
Yukarıda ilk olarak gerekli paketlerimizi tanımladık. Ardından testimiz için bir adet main fonksiyonu oluşturduk ve içerisine testimizi yazdık. Koda baktığımızdada anlaşıldığı gibi ilk olarak uygulamamızdaki “You have pushed the button this many times:” yazısını kontrol ettik. Ve ardından + butonuna 3 sefer bastırıp her seferinde sayının son halinin güncelliğini kontrol ettik. Butona her tıklamamızdan sonra tester.pumpAndSettle(); fonksiyonu ile uygulamamızın state’ini güncelledik böylece her tıklamamızda uygulamamız yeniden render oldu ve counter (sayaç) sayısı arttı.
Evet testimizi yazdık sıra geldi çalıştırmaya testimizi çalıştırmak için aşağıdaki komutu projemizin dizininde iken terminalimize giriyoruz.
flutter test integration_test
Yukarıdaki komutun çıktısında mobil uygulamamız emulatörümüzde otomatik olarak açılır ve testimizde yazdığımız adımları tek tek yapar ve uygulamamız kapanır.
Evet ilk yazımın sonuna geldik umarım anlaşılır ve temiz bir şekilde her şeyi açıklayabilmişimdir. Aşağıda örnek projenin kodlarına ulaşabilirsiniz. Bir sonraki yazılarımda görüşmek dileği ile okuduğunuz için teşekkür ederim.
Github: https://github.com/anilaydinn/integration-test-example