Тестування-це дуже важливий етап у розробці додатків. Це гарантує, що додаток буде мати високу якість. Мета тесту-довести, що користувальницький інтерфейс віджета виглядає і взаємодіє так, як заплановано. Віджет-тест має можливість отримувати дії і події Користувача, а також реагувати на них, будувати дерево дочірніх віджетів. Тому віджет-тести складніші, ніж модульні тести.
Отже, давайте створимо простий тестовий додаток.

Зображення видалено.

Це простий додаток, який складається з трьох віджетів. Ми пишемо текст в текстовому полі, і при натисканні кнопки "Відправити" текст відображається в текстовому віджеті.

Зображення видалено.

Для написання віджет-тестів в нашому pubspec.yaml, flutter_test sdk вже був доданий при створенні проекту.

Зображення видалено.

тепер давайте напишемо віджет-тест

Зображення видалено.

Для визначення тесту використовуйте функцію testWidgets(), надану пакетом flutter_test. Функція testWidgets дозволяє визначити тест віджета і створює WidgetTester для роботи з ним.
Цей тест перевіряє, що MyWidget відображає заданий заголовок і повідомлення.
Потім створіть MyWidget всередині тестового середовища за допомогою методу pumbWidget(), наданого WidgetTester. Метод pumpWidget будує і візуалізує наданий віджет.
За наявності віджета в тестовому середовищі виконайте пошук по дереву віджетів кнопок і текстових текстових віджетів за допомогою Finder. Це дозволяє перевірити правильність відображення віджетів.
У рядку 10 ми використовуємо метод find.byType() для пошуку TextField.
find.byType() - пошук будь-якого віджета.
Переконайтеся, що всі віджети відображаються на екрані за допомогою констант matcher, наданих flutter_test. Оскільки у нас є два текстових віджети, нам потрібно використовувати findsWidget, але для кнопки ми використовуємо findsOneWidgets.
Так як стан наших віджетів змінюється, нам потрібно перебудувати їх після натискання на кнопку, це 18-й і 19-й рядки нашого коду.
У рядку 18 ми натискаємо кнопку, а в рядку 19 ми перебудовуємо наш віджет за допомогою метода tester.pumb(), це аналог методу setState().
Тепер нам потрібно запустити метод flutter test з терміналу, і якщо всі тести спрацюють правильно, ми отримаємо All tests passed!
Але що робити, якщо цього недостатньо, і ми хочемо використовувати CI / CD, який буде автоматично перевіряти всі наші збірки і відправляти результати тестування безпосередньо на нашу пошту?І для цього є чудовий CI / CD, який працює безпосередньо з flutter - це CodeMagic.
виберіть свою середовище розробки

Зображення видалено.

Далі нам потрібно перейти до налаштувань нашого проекту

Зображення видалено.

установіть прапорець у розділі тест для тестування та збережіть зміни

Зображення видалено.

Тепер ви можете почати тестування.
Для детального вивчення віджет-тесту можна скористатися посиланнями:

 

More like this

Get in touch

Зв'язатися з нами

Frankfurt am Main, Germany (Sales)

60354

Eckenheimer Schulstraße, 20

+38 (098) 630-49-85

info@a5.ua

Харків, Україна

61023

вул. Трінклера, 9

+38 (050) 908-31-07

info@a5.ua

Burgas, Bulgaria (Development)

8008

бул. „Транспортна“ 15, Northern Industrial Zone

+359 877 350129

info@a5.ua