Практическое руководство по написанию модульных тестов для Appwrite SDK на Flutter с помощью Mockito
Appwrite — это серверная часть с открытым исходным кодом (OSS) как услуга, целью которой является абстрагирование сложности общих, сложных и повторяющихся задач, необходимых для создания современного приложения. Appwrite можно использовать как альтернативу Firebase с набором функций, таких как аутентификация, база данных, хранилище, функции и поддержка в реальном времени. Кроме того, он предоставляет SDK практически для всех платформ, таких как Интернет, Android, iOS, Flutter и т. д.
Хотя мы используем SDK для разработки приложения. Модульное тестирование по-прежнему важно, чтобы проверить, хорошо ли наше приложение подключено к этому SDK. Итак, в этой статье я хочу показать вам, как создать модульный тест в вашем проекте Flutter при использовании Appwrite в качестве SDK для вашего бэкэнда.
Если вы новичок в модульном тестировании терминов, вы можете прочитать мою предыдущую статью о тестировании Flutter здесь.
Шаг 1 — Получите плагин Mockito
Потому что в модульном тесте мы не выполняем настоящую функцию. Итак, чтобы иметь возможность модульного тестирования такой службы, как Appwrite, нам нужно создать макет для этой службы. Для этого нам нужен плагин под названием Mockito.
Давайте добавим mockito
в наш файл dev_dependencies
на pubspec.yaml
.
... dev_dependencies: flutter_test: sdk: flutter build_runner: ^2.1.7 mockito: ^5.1.0 ...
Помимо mockito
, нам также нужно build_runner
, потому что mockito сгенерирует фиктивный файл.
Шаг 2 — Создайте макет приложения
После получения необходимых нам плагинов следующим шагом будет создание макета нашего сервиса. Например, я хочу создать репозиторий для проверки подлинности. Итак, я создам макет для Account
из Appwrite SDK.
Чтобы сгенерировать новый фиктивный файл, мы используем аннотацию @GenerateMocks()
в нашем тестовом файле. После этого нам нужно запустить build_runner
, чтобы начать создание фиктивного файла. Эта команда создаст новый файл, например auth_repository_test.mocks.dart
flutter packages pub run build_runner build
Шаг 3 — Напишите тест
Теперь мы готовы написать наш тест. В качестве примера я напишу тест для функции входа в систему. Вот как выглядит мой тестовый файл для auth_repository_test.dart
:
MockAccount
взят из фиктивного файла, который мы создали ранее. В AuthRepositoryImpl
я передаю _mockAccount
в качестве зависимости.
Шаг 4 — Напишите фактический код
Последний шаг — написать фактический код репозитория. Вот как выглядит мой файл auth_repository.dart
:
Кстати, Appwrite также предоставляет класс AppwriteException
. Это полезно, если вы хотите создать более богатую обработку ошибок для своего приложения. Например, предупреждение о неправильном пароле, предупреждение об уже используемой электронной почте и т. д.
Итак, это пошаговое модульное тестирование для вашего проекта Flutter, когда вы используете Appwrite в качестве SDK, чтобы облегчить себе жизнь при создании приложения в одиночку. Я использую метод разработки через тестирование при написании этого модульного теста. Если вам интересно узнать о TDD, вы можете прочитать больше здесь:
Если у вас есть какие-либо вопросы, не стесняйтесь начать обсуждение.
Спасибо за прочтение.