Files
eatvio_app/test/features/blog_post_create/README.md
2025-10-22 16:48:08 +03:00

7.5 KiB
Raw Blame History

Blog Post Creation Tests

Этот набор тестов покрывает функциональность создания, обновления и удаления блог постов в приложении EatVio.

Структура тестов

1. Basic Widget Tests (basic_widget_test.dart)

Базовые виджет тесты для проверки основных компонентов создания блог постов:

  • Создание BlogPostCreateCubit - проверка инициализации cubit
  • Отображение полей формы - проверка наличия всех необходимых полей
  • Обновление полей - проверка ввода текста в поля заголовка, описания и видео
  • Отображение лейблов - проверка корректности отображения подписей полей
  • Placeholder текст - проверка подсказок в полях ввода
  • Кнопка создания - проверка отображения и функциональности кнопки
  • Обработка нажатий - проверка реакции на нажатия кнопок
  • Состояния загрузки - проверка отображения индикатора загрузки
  • Сообщения об ошибках - проверка отображения ошибок
  • Сообщения об успехе - проверка отображения успешных операций
  • Валидация полей - проверка валидации обязательных полей
  • Полная форма - проверка отображения всех полей формы
  • Загрузка изображений - проверка функциональности загрузки изображений

2. Advanced Widget Tests (advanced_widget_test.dart)

Продвинутые тесты для проверки сложных сценариев:

  • Создание с всеми полями - тест создания блог поста со всеми заполненными полями
  • Создание с изображением - тест создания блог поста с загруженным изображением
  • Обновление блог поста - тест обновления существующего блог поста
  • Удаление блог поста - тест удаления блог поста
  • Состояния загрузки - проверка состояний загрузки во время операций
  • Обработка ошибок - проверка обработки ошибок при создании
  • Успешное создание - проверка успешного завершения операций
  • Валидация формы - проверка валидации полей перед отправкой
  • Взаимодействие с загрузкой изображений - проверка функциональности выбора изображений
  • Валидация URL видео - проверка валидации ссылок на видео
  • Отправка с пустыми полями - проверка обработки пустых полей
  • Длинный контент - проверка обработки длинного текста

3. Integration Widget Tests (integration_widget_test.dart)

Интеграционные тесты для проверки полного потока работы:

  • Полный поток создания - тест полного процесса создания блог поста
  • Поток обновления - тест полного процесса обновления блог поста
  • Поток удаления - тест полного процесса удаления блог поста
  • Обработка ошибок - тест обработки ошибок в полном потоке
  • Состояния загрузки - тест состояний загрузки в полном потоке
  • Успешное завершение - тест успешного завершения операций
  • Валидация формы - тест валидации в полном потоке
  • Загрузка изображений - тест загрузки изображений в полном потоке
  • Полный функционал - тест всех функций создания блог постов

Ключи приложения (AppKeys)

Тесты используют следующие ключи из app_keys.dart:

  • blogPostCreateScreenTitleTextField - поле заголовка
  • blogPostCreateScreenContentTextField - поле описания
  • blogPostCreateScreenVideoLinkTextField - поле ссылки на видео
  • blogPostCreateScreenCreateButton - кнопка создания/обновления
  • imageWidget - виджет загрузки изображения

Моки (Mocks)

Тесты используют моки для следующих компонентов:

  • MockBlogPostRepository - репозиторий для работы с блог постами
  • MockFeedCubit - cubit для управления лентой постов

Состояния BlogPostCreateState

Тесты проверяют следующие состояния:

  • BlogPostCreateState - начальное состояние
  • BlogPostCreateStateLoading - состояние загрузки
  • BlogPostCreateStateLoaded - состояние успешного завершения
  • BlogPostCreateStateError - состояние ошибки

Запуск тестов

Для запуска всех тестов блог постов:

flutter test test/features/blog_post_create/

Для запуска конкретного теста:

flutter test test/features/blog_post_create/basic_widget_test.dart
flutter test test/features/blog_post_create/advanced_widget_test.dart
flutter test test/features/blog_post_create/integration_widget_test.dart

Покрытие функциональности

Тесты покрывают:

  • ✅ Создание блог постов
  • ✅ Обновление блог постов
  • ✅ Удаление блог постов
  • ✅ Загрузка изображений
  • ✅ Валидация полей
  • ✅ Обработка ошибок
  • ✅ Состояния загрузки
  • ✅ Интеграция с лентой постов
  • ✅ Пользовательский интерфейс
  • ✅ Взаимодействие с формами

Зависимости

Тесты используют следующие пакеты:

  • flutter_test - базовые тесты Flutter
  • mockito - создание моков
  • flutter_bloc - тестирование BLoC
  • image_picker - работа с изображениями

Структура файлов

test/features/blog_post_create/
├── basic_widget_test.dart
├── basic_widget_test.mocks.dart
├── advanced_widget_test.dart
├── advanced_widget_test.mocks.dart
├── integration_widget_test.dart
├── integration_widget_test.mocks.dart
└── README.md