flutter_test nedir?
- Flutter kursu
- İleri seviye
- Ders 61/69
- 4 dk
flutter_test ile widget testi yazmaya başlamayı öğrenirsin.
flutter_test nedir?
flutter_test paketi, Flutter widget'larını test etmek için kullanılan resmi test çerçevesidir. testWidgets fonksiyonu bir test ortamı kurar, Finder ile widget'ları bulur, expect ile doğrularsın. Testler test/ klasörüne _test.dart uzantısıyla konur.
import 'package:flutter_test/flutter_test.dart';
void main() {
testWidgets('baslik gosterilir', (tester) async {
await tester.pumpWidget(MyApp());
expect(find.text('Merhaba'), findsOneWidget);
});
}Finder ile widget bulma
Finder, widget ağacında arama yapmak için kullanılır. find.text metinle, find.byType widget tipiyle, find.byKey anahtarla bulur. expect ile Finder sonucunu findsOneWidget, findsNothing gibi değerlerle kontrol edersin.
Uygulama İlk widget testi
main içinde 'metin gosterilir' adlı bir testWidgets testi yaz. pumpWidget ile MaterialApp(home: Text('Merhaba')) render et. find.text('Merhaba') ve findsOneWidget ile doğrula. Son olarak 'test tanimlandi' yazdır.
Başlangıç kodu
import 'package:flutter_test/flutter_test.dart';
import 'package:flutter/material.dart';
void main() {
// 'metin gosterilir' adlı bir testWidgets testi yaz
// pumpWidget ile MaterialApp içinde Text render et
// find.text ile metni bul ve tek widget bulunduğunu doğrula
// son olarak 'test tanimlandi' yazdir
}Örnek çözüm
import 'package:flutter_test/flutter_test.dart';
import 'package:flutter/material.dart';
void main() {
testWidgets('metin gosterilir', (tester) async {
await tester.pumpWidget(
const MaterialApp(home: Text('Merhaba')),
);
expect(find.text('Merhaba'), findsOneWidget);
});
print('test tanimlandi');
}Beklenen çıktı
test tanimlandi
Soru ve cevaplar
Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.
1 Test dosyaları hangi klasöre konur?
- assets/
- test/ Doğru cevap
- lib/
- bin/
Açıklama: Flutter testleri test/ klasöründe ve _test.dart uzantısıyla saklanır; flutter test komutu bu klasörü tarar.
2 find ile metin ara
expect(find.____('Merhaba'), findsOneWidget);
expect(find.text('Merhaba'), findsOneWidget);
Açıklama: find.text metodu widget ağacında verilen metne sahip widget'ı bulur; find.byType tip ile, find.byKey anahtar ile arar.
3 flutter_test parçaları
| Kavram | Anlamı |
|---|---|
flutter_test |
Test çerçevesi |
testWidgets |
Test ortamı kurar |
Finder |
Widget bulma |
expect |
Doğrulama |