forked from eatvio/eatvio_app
Widget Tests для создания рецепта
Этот каталог содержит widget тесты для функциональности создания рецепта в приложении Eatvio.
Файлы тестов
1. basic_widget_test.dart
Основные widget тесты, которые проверяют базовую функциональность создания рецепта:
- Создание CreateRecipeCubit - проверяет корректное создание cubit'а
- Отображение полей формы - проверяет наличие всех необходимых полей
- Обновление полей - проверяет корректное обновление полей при вводе данных
- Отображение лейблов - проверяет корректное отображение подписей полей
- Placeholder текст - проверяет отображение подсказок в полях
- Кнопка публикации - проверяет наличие и функциональность кнопки
- Обработка нажатий - проверяет корректную обработку нажатий на кнопки
- Состояния загрузки - проверяет отображение индикатора загрузки
- Сообщения об ошибках - проверяет отображение ошибок
- Сообщения об успехе - проверяет отображение сообщений об успешном выполнении
- Валидация полей - проверяет отображение ошибок валидации
- Полная форма - проверяет отображение всех полей формы
2. simple_widget_test.dart
Более сложные тесты, которые работают с реальными виджетами приложения:
- InfoAboutRecipeWidget - тестирует виджет основной информации о рецепте
- IngredientsWidget - тестирует виджет ингредиентов
- StepsWidget - тестирует виджет шагов приготовления
- Интерактивность - тестирует взаимодействие с полями формы
- Добавление элементов - тестирует добавление ингредиентов, шагов и тегов
3. widget_test.dart
Полные интеграционные тесты (требуют настройки GetIt):
- Полный экран создания рецепта - тестирует весь экран целиком
- Валидация - проверяет валидацию всех полей
- Навигация - тестирует навигацию между экранами
- Редактирование рецепта - тестирует режим редактирования
Запуск тестов
Запуск всех тестов создания рецепта:
flutter test test/features/create_recipe/
Запуск конкретного файла тестов:
# Базовые тесты (рекомендуется)
flutter test test/features/create_recipe/basic_widget_test.dart
# Простые тесты с реальными виджетами
flutter test test/features/create_recipe/simple_widget_test.dart
# Полные интеграционные тесты (требуют настройки)
flutter test test/features/create_recipe/widget_test.dart
Структура тестов
Все тесты используют:
- Mockito для создания мок-объектов
- Flutter Test для widget тестирования
- BlocProvider для управления состоянием
- AppKeys для поиска элементов по ключам
Рекомендации
- Начните с
basic_widget_test.dart- эти тесты наиболее стабильны и покрывают основную функциональность - Используйте
simple_widget_test.dartдля тестирования реальных виджетов приложения widget_test.dartтребует дополнительной настройки GetIt и может быть нестабильным
Покрытие тестами
Тесты покрывают:
- ✅ Создание и инициализация cubit'а
- ✅ Отображение всех полей формы
- ✅ Ввод данных в поля
- ✅ Валидация полей
- ✅ Обработка состояний (загрузка, ошибка, успех)
- ✅ Интерактивность (нажатия, ввод текста)
- ✅ Отображение лейблов и подсказок
- ✅ Добавление ингредиентов, шагов и тегов
Зависимости
Тесты используют следующие пакеты:
flutter_test- основной пакет для тестированияmockito- для создания мок-объектовflutter_bloc- для тестирования BLoC/Cubitbuild_runner- для генерации мок-файлов
Генерация мок-файлов
После изменения тестов запустите:
dart run build_runner build --delete-conflicting-outputs
Это сгенерирует необходимые .mocks.dart файлы.