Как протестировать оверлей? - PullRequest
0 голосов
/ 10 июля 2020

Я тестирую оверлей, который появляется при нажатии кнопки. Наложение содержит TextFormField (проверьте демонстрацию здесь ).

Я блуждаю, если можно, мне следует использовать более продвинутую среду тестирования.

Это код:

await tester.tap(find.byType(IconButton));
await tester.pumpAndSettle();
await tester.enterText(find.byType(TextFormField), 'hi');

Тест не проходит в последней строке с сообщением Bad state: No element.

Кажется, оверлей потерялся. Есть предложения?

1 Ответ

0 голосов
/ 14 июля 2020

Чтобы полностью прокачать оверлей, нужно вызвать pumpAndSettle два раза. Также золотой снимок экрана является чрезвычайно полезной функцией при отладке:

await tester.tap(find.byType(IconButton));
await tester.pumpAndSettle();
await tester.pumpAndSettle();

await expectLater(
  find.byType(MaterialApp),
  matchesGoldenFile('overlay.png'),
);

await tester.enterText(find.byType(TextFormField), 'hi');

Запустите flutter test --update-goldens для создания золотых.

...