Тестування-це дуже важливий етап у розробці додатків. Це гарантує, що додаток буде мати високу якість. Мета тесту-довести, що користувальницький інтерфейс віджета виглядає і взаємодіє так, як заплановано. Віджет-тест має можливість отримувати дії і події Користувача, а також реагувати на них, будувати дерево дочірніх віджетів. Тому віджет-тести складніші, ніж модульні тести.
Отже, давайте створимо простий тестовий додаток.
Це простий додаток, який складається з трьох віджетів. Ми пишемо текст в текстовому полі, і при натисканні кнопки "Відправити" текст відображається в текстовому віджеті.
Для написання віджет-тестів в нашому 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.
виберіть свою середовище розробки
Далі нам потрібно перейти до налаштувань нашого проекту
установіть прапорець у розділі тест для тестування та збережіть зміни
Тепер ви можете почати тестування.
Для детального вивчення віджет-тесту можна скористатися посиланнями: