Данное расшерение позволяет генерировать тесты для Cubit/BLoC/DTO и методов/функций, сгенерированные структуры могут создаваться либо "под ключ", либо требовать ручных доработок, такие как: удаление излишних тестов, внесение переменных в методы и анализ входных - выходных значений.
1. Установка (не из стора)
Скачайте .vsix файл плагина, или выполните npm run compile из директории плагина и запустите проект - F5.
Откройте файл Bloc/Cubit/Dto/Файл с методом (например, auth_login_bloc.dart)
Нажмите Ctrl+Shift+P, когда курсор находится на названии класса (начало файла, именно объявление)
Введите "Flutter: Generate Test"
Плагин автоматически создаст тесты в test/features/[название_фичи]/, включая тест выбранного объекта, общий исполнительный файл фичи, а так же обновит (или создаст) общий исполнительный файл всех тестов проекта
4. Что получите
Структура тестов:
test/
├── features/
│ └── [название_фичи]/
│ ├── bloc/ (или cubit/)
│ │ └── [имя]_bloc(или cubit)_test.dart - тест кубита/блока
| ├── dto
| | └── [имя]_dto_test.dart - тест дто
| ├── [имя]_test.dart - общий тест фичи
├── unit_test/
│ ├── method1/
│ └── method2/
├── test.dart - общий тест всех фичей
✅ Полные unit-тесты с mock объектами (возможны ручные доработки)
✅ Тесты для всех методов/событий, которые изменяют состояние
✅ Проверка начального состояния
✅ Комбинированные тесты, состоящие из последовательных вызовов нескольких методов/событий
✅ Визуализация автомата состояний и тестовых множеств
✅ Автоматическое форматирование
Known Issues
В настоящее время, помимо необходимости ручной доработки сложных тестовых конструкций так же отсутствует адаптивность работы со вложенными Json в DTO.
Так же не учитываются part импорты, иногда возникают лишние иморты и ошибки из-за этого.