Flutter ile mobil entegrasyon testi nasıl yapılır ?

Anıl Aydın
CodeBrew
Published in
3 min readJun 4, 2023

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.

Flutter dosya yapısı
Projemizin ilk dosya yapısı

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
pubspec.yaml dosyasındaki dev_dependencies

Ardından projemizin ana dizininde integration_test adında bir klasör oluşturuyoruz.

mkdir integration_test
integration_test klasörünü yarattıktan sonra projemizin dosya yapısının son hali

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

--

--