Домашнее задание Flutter.Тестирование и профилирование. Unit tests Цель: Цель домашнего задания - получить навык работы с юнит тестами и виджет тестами (Unit Testing and Widget Testing) Пишем юнит тесты на наши сервисы, используемые в работе нашего мобильного приложения. Пишем тесты на покрытие логики наших виджетов. Собираем test coverage. - Склонировать соотвествующий github репозиторий с заготовкой проекта для этого урока - Открыть класс сервиса AsyncCocktailRepository, найти код методов, не покрытых юнит-тестами (запустив юнит тесты с code coverage) - Написать юнит-тесты на метод fetchCocktailDetails (успешное выполнение, выброс exception), используя test (flutter_test) & mockito packages - Убедиться, что этот метод покрыт юнит тестами - попробуйте собрать test coverage и проанализировать покрытие кода - Проанализировать класс виджета CocktailDetailPage ((CocktailDescriptionWidget => CocktailTitle => код для отображения признака isFavorite)), написать тест на покрытие кнопки isFavourite - состояние ВИзбранном, Не В Избранном На усмотрение студента: - Можно выполнить любую декомпозицию методов AsyncCocktailRepository (рефакторинг - он понадобится, так как используется http) - Можно вносить изменения в класс CocktailDetailPage (CocktailDescriptionWidget => CocktailTitle => код для отображения признака isFavorite), требуемые для тестирования виджета (семантика) Форма сдачи: - ДЗ Сдается в виде ссылки на pull request на основной репозиторий Куда сдать ДЗ: - Отправляется напрямую в ЛК Критерии оценки: Критерии оценки: - Метод fetchCocktailDetails ищ AsyncCocktailRepository покрыт юнит-тестами - 4 балла - Есть виджет тесты на функциональность кнопки isFavourite - 4 балла - Нет ошибок (errors & warnings & infos) от dart analyzer - 3 балла - В Код кнопки isFavourite добавлена семантика (bySemanticsLabel, SemanticsWidget) для упрощения поиска виджета с целью улучшения читаемости кода теста - 3 балла Статус "Принято" ставится от 8 баллов.