Флаттер. Как проверить, что нет переполнений с интеграционными тестами? - PullRequest
3 голосов
/ 27 апреля 2019

Я использую flutter_driver для проведения интеграционных тестов во Flutter. На некоторых экранах текст на кнопках дает ошибки переполнения. Я хочу создать тест, который может показать, что переполнение произошло. Поэтому, когда я буду запускать все интеграционные тесты на нескольких виртуальных / реальных устройствах, я вижу, что пользовательский интерфейс расположен неправильно.

1 Ответ

2 голосов
/ 05 мая 2019

Для этого нет необходимости в интеграционных тестах.Подойдут тесты виджетов.

Поскольку тестирование виджетов выполняется с включенными утверждениями, вызов tester.pumpWidget с виджетом, который будет переполнен, вызовет исключение и, следовательно, даст сбойный тест. Например,следующий тест не пройден:

testWidgets('overflow', (tester) async {
  await tester.pumpWidget(Row(
    textDirection: TextDirection.ltr,
    children: <Widget>[
      // too big to fit in the default size of the row
      Container(width: 99999),
    ],
  ));
});

Обратите внимание, что размер экрана для тестирования виджетов можно настроить.См. Как тестировать виджеты Flutter на экранах разных размеров?

В качестве альтернативы, мы можем заключить наш проверенный виджет в Container примерно так:

await tester.pumpWidget(Container(
  alignment: Alignment.center,
  width: <my screen widget>,
  height: <my screen height>,
  child: <the widget which I want to test overflow on>,
);
...