Animal Project
Этот проект представляет собой Java-приложение, реализующее модель животных с использованием принципов объектно-ориентированного программирования и инъекции зависимостей. Проект включает классы Animal, Feline, Cat, Lion и интерфейс Predator, а также тесты с использованием JUnit 4, Mockito и JaCoCo для обеспечения 100% покрытия кода.
Требования задания
Нейминг: Корректный нейминг элементов согласно Java-конвенциям.
Зависимости: В pom.xml подключены JaCoCo, Mockito и JUnit, без лишних зависимостей.
Расположение тестов: Тесты находятся в src/test/java.
Инъекция зависимостей: Класс Lion зависит от интерфейса Predator, а не от Feline.
Моки: Использованы моки с Mockito в тестах для Cat и Lion.
Параметризация: Параметризованные тесты для Feline и Lion вынесены в отдельные классы.
Покрытие кода: Классы Feline, Cat и Lion покрыты тестами на 100%, подтверждено отчетом JaCoCo.
Отчет JaCoCo: Сгенерирован и закоммичен в репозиторий.
Структура проекта
project-root/ ├── src/ │ ├── main/ │ │ ├── java/ │ │ │ └── com/example/ │ │ │ ├── Animal.java # Базовый класс для животных │ │ │ ├── Cat.java # Класс кошки, зависит от Predator │ │ │ ├── Feline.java # Класс кошачьих, реализует Predator │ │ │ ├── Lion.java # Класс льва, зависит от Predator │ │ │ ├── Predator.java # Интерфейс для хищников │ ├── test/ │ │ ├── java/ │ │ │ └── com/example/ │ │ │ ├── FelineTest.java # Обычные тесты для Feline │ │ │ ├── FelineParameterizedTest.java # Параметризованные тесты для Feline │ │ │ ├── CatTest.java # Тесты для Cat │ │ │ ├── LionTest.java # Тесты для Lion ├── pom.xml # Файл конфигурации Maven ├── README.md # Документация проекта ├── target/ │ ├── site/ │ │ ├── jacoco/ # Отчет JaCoCo
Зависимости
Java: 11 (настоятельно рекомендуется)
Maven: 3.6.0 или выше
Зависимости Maven:
JUnit 4.13.2 (тестирование)
Mockito Core 5.2.0 (моки)
Mockito Inline 5.2.0 (поддержка инлайн-моков)
JaCoCo 0.8.12 (покрытие кода)