Flutter: тестирование исключений в тестах виджетов - PullRequest
0 голосов
/ 19 января 2019

Как мне убедиться, что пользовательский интерфейс (виджет) генерирует исключение во время тестирования виджетов во Flutter. Вот мой код, который не работает:

expect(
  () => tester.tap(find.byIcon(Icons.send)),
  throwsA(const TypeMatcher<UnrecognizedTermException>()),
);

Сбой со следующей ошибкой

...
Expected: throws <Instance of 'TypeMatcher<UnrecognizedTermException>'>
  Actual: <Closure: () => Future<void>>
   Which: returned a Future that emitted <null>

ИЛИ ...... я должен проверить, как пользовательский интерфейс обрабатывает исключение, просматривая сообщения об ошибках и т. Д. ??

1 Ответ

0 голосов
/ 19 января 2019

Чтобы отловить исключения, генерируемые в тесте флаттера, используйте WidgetTester.takeException . Это возвращает последнее исключение, пойманное платформой.

await tester.tap(find.byIcon(Icons.send));
expect(tester.takeException(), isInstanceOf<UnrecognizedTermException>());

Вам также не нужен throwsA сопоставитель, так как он не выбрасывается из метода.

...