Integration Test'i Manuel Tıklamaya Bırakmak
Elle geçmek, locale'de kırılır

Birim testim vardı, widget testim vardı, yayın öncesi 'bir tur tıkla' listem vardı. Liste insana bağlı. İki kez atladım: uzun Türkçe etiket overflow, sistem geri tuşuyla taslağın sessizce düşmesi. İkisi de mutlu yolda görünmez.
Ne sabitleyeyim
Her jesti değil. Kayıt oluştur, yayınla, geri dön, taslak dursun. Giriş yap, oturum düşsün, tekrar giriş. Bu üç zincir kırılırsa ürün kırılır. Rengin 2 ton kayması integration'ın işi değil.
void main() {
IntegrationTestWidgetsFlutterBinding.ensureInitialized();
testWidgets('geri tuşu taslağı silmez', (tester) async {
await tester.pumpWidget(const NotesApp());
await tester.tap(find.byKey(const Key('fab.new')));
await tester.pumpAndSettle();
await tester.enterText(find.byKey(const Key('editor.title')), 'Taslak');
await tester.pageBack();
await tester.pumpAndSettle();
expect(find.text('Taslak'), findsOneWidget);
});
}
Key yoksa test metne bağlanır. Metin çevirince test kırılır, ürün değil. find.byKey sıkıcı, dayanıklı. pumpAndSettle animasyonu bitirmese timeout; o da bir sinyal, 'biraz bekle' değil.
Locale için aynı testi tester.binding.setLocale('tr', 'TR') ile bir kez daha koşuyorum. Overflow orada çıkıyor; benim parmağım İngilizce emülatörde kalıyor. Geri tuşu da fiziksel cihaz jesti; pageBack onu taklit eder, AppBar'daki geri ikonu etmez.
Elle tıklamayı tamamen kesmiyorum. Yeni bir jestin hissi hâlâ elde. Ama yayın kapısı insan hafızası olmasın. Kapı, aynı iki senaryonun makinede yeşil kalması.
Yorumlar
Yorumlar (0)
Yorumlar üyelere açık. Üye ol · Giriş yap