Найти в Дзене
Тарасов

Flutter и Rest Api. Отладка тестами.

При интеграции с Api очень часто возникает ситуация, когда нужно посмотреть как отрабатывает интеграция, не рисуя для этого новые экраны. И чтобы не нужно было запускать приложение, потом двигаться к нужному экрану и смотреть, что получилось. Ловить ошибку и все сначала.

Для этого можно использовать Postman. Но! Ошибка может возникнуть не только на стороне сервера, но и на стороне приложения, например в момент сериализации. И плюс можно же все сделать только в рамках IDE, при этом в случае ошибки, можно будет быстро отладить/исправить приложение. Удобно ? Удобно.

Эта статья является продолжением статьи

Как подружить Flutter с Rest Api
Полный.Застрял.Разработал()17 марта 2023

Поэтому сами тестируемые методы будут использоваться оттуда.

Погнали

При создании проекта обычно библиотека flutter_test уже добавлена, но если вдруг нет, то в pubspec нужно добавить следующее

dev_dependencies:
flutter_test:

В этот же раздел dev_dependencies добавляем библиотеку test

test | Dart Package
dev_dependencies:
test: 1.21.4
flutter_test:

В папку test добавляем файл api_data_provider_test.dart.

Важно! Все файлы с тестами в папке test должны заканчиваться на _test иначе не будут восприниматься как тесты.

Пишем наш тест. Выглядит он так

-2

Важно! Всегда должен быть объект тестирования - это метод в рамках тестирования он называется Unit. Отсюда и название тестирования разработчиком Unit тестирование.

Запустить тест можно нажав правой кнопкой мышкой на файл api_data_provider_test и Debug или Run.

Запускаем. И получаем ошибку

-3

Надо отладить. Судя по ошибке она происходит в момент сериализации Json в класс ForecastResponseHourly. Ставим точки останова там.

Заметка. Чтобы поставить точку останова (breakpoint) нужно левой кнопкой мыши нажать справа от номера строки.

-4

Можно посмотреть состояние всех переменных в момент останова. Но ошибку можно найти не вооруженным взглядом (подчеркнул).

Исправляем и запускаем тест заново.

-5

Останавливаемся уже на нужной точке останова и видим, что класс сериализовался без проблем. На сам результат теста не стоит обращать внимания, потому что ничего конкретного мы не ждем.

На этом все. Эта статья не покрывает всей теории касательно темы тестирования. Но как инструмент для разработчика - вполне.

Пишите вопросы в комментариях, ставьте лайки и подписывайтесь на канал. Спасибо.