4th course, IU7
Bauman Moscow State Technical University
- Написать unit-тесты для компонентов доступа к данным и бизнес логики работы по БД
- Требуемое покрытие тестами: один класс - как минимум один test suite с как минимум тремя тестами
- Должны быть представлены тесты как в классическом так и в "Лондонском" варианте с обоснованием, почему выбран конкретный подход
- Должны быть представлены варианты использования mock/stub
- Должна быть соблюдена структура Arrange-Act-Assert для каждого теста с использованием fixture и остальных классов/методов хелперов
- Должны быть представлены тесты с использованием паттерна Data Builder (ObjectMother - опционально)
- Должен быть настроен локальный запуск тестов в среде разработки
- Защита от регрессии, устойчивость к рефакторингу и легкость поддержки - базовые принципы, которым стоит следовать
- Написать integration-тесты для компонентов доступа к данным и бизнес логики курсовой работы по БД
- Написать E2E-тест для демонстрационного сценария (например того, который был использован при защите курсовой работы)
- Организовать запуск тестов из лабораторной работы №1 и вновь добавленных в рамках работы №2 в любой, на усмотрение студента, CI\CD среде (GitLab, Jenkins, TeamCity, etc.)
- Проимитировать действия из Е2Е теста с помощью средства для отправки запросов, снять лог с помощью средства захвата траффика
- Хотя бы два интеграционных теста, где тестируются только два класса без моков\стабов остальных классов
- Хотя бы два интеграционных теста, где тестируется не менее двух классов с произвольным количеством моков\стабов остальных
- Е2Е тест должен включать в себя взаимодействие с БД, БД инициализируется из схемы, которая хранится в системе контроля версий
- Взаимодействие с UI для E2E теста не требуется -- имитировать события по условному клику интерфейса через отдельный хэлпер
- Интеграционные тесты -- следовать паттерну Arrange-Act-Assert
- Е2Е тест -- использовать несколько секций Act-Assert
- Порядок запуска тестов в CI\CD: Unit → Integration → E2E
- Предусмотреть для Е2Е теста режим: запустить N раз, проверить сколько раз выполнен успешно, 100 <= N <= 1000 (я забыл)
GitHub Actions для настройки CI/CD
- Реализовать E2E тест из лабораторной работы №2 с помощью средств TDD/BDD с передачей разных датасетов
- Провести профилирование E2E теста из лабораторной работы №2
- Использовать паттерн Given\When\Then\Where с помощью средств выбранного фреймворка
- Вектора значений\эталонных результатов можно передавать в теле теста; передавать \ читать состояние БД или дерево исполнения вызовов не обязательно (но приветствуется)
- Профилирование по потреблению CPU, RAM, и оценка Garbage Collection Pauses (если в языке есть GC паузы)
- Результатом профилирования является файл отчета, который можно открыть в выбранной для профилирования утилите повторно