Lessons 36 - angelShlesser/HomeWorksAIT GitHub Wiki

Задание: Unit-тестирование супергероев в Java

Цель задания:

Научиться писать и выполнять модульные тесты для Java-классов, используя библиотеку JUnit, на примере системы управления супергероями. Описание задачи:

Вы разрабатываете программу для управления супергероями в мире комиксов. Вам необходимо написать класс Superhero, который представляет собой сущность супергероя с полями: имя (name), силой (power), и возрастом (age). Затем вы должны разработать класс SuperheroManager, который будет управлять коллекцией супергероев.

Часть 1: Написание класса Superhero

Создайте класс Superhero с полями:
   * String name: имя супергероя.
   * int power: уровень силы супергероя (от 1 до 10).
   *  int age: возраст супергероя.

Реализуйте конструктор для класса Superhero, который принимает параметры name, power и age и инициализирует соответствующие поля.

Добавьте геттеры и сеттеры для всех полей.

Переопределите метод toString() для класса Superhero, чтобы он возвращал строку с информацией о супергерое в формате: "Имя: [name], Сила: [power], Возраст: [age]".

Часть 2: Написание класса SuperheroManager

Создайте класс SuperheroManager для управления коллекцией супергероев. В этом классе должны быть следующие методы:
    void addSuperhero(Superhero superhero): метод для добавления супергероя в коллекцию.
    void removeSuperhero(String name): метод для удаления супергероя по имени.
    Superhero getSuperhero(String name): метод, который возвращает супергероя по имени.
    List<Superhero> getAllSuperheroes(): метод, который возвращает список всех супергероев.

Реализуйте методы класса SuperheroManager с учетом следующих правил:
    Нельзя добавлять супергероев с одинаковыми именами.
    Если метод removeSuperhero не находит супергероя с указанным именем, он должен возвращать null`.

Часть 3: Unit-тестирование с использованием JUnit

Создайте тестовый класс SuperheroManagerTest для класса SuperheroManager.

Напишите тесты для всех методов класса SuperheroManager. Убедитесь, что каждый метод работает корректно и соответствует правилам, указанным в описании задачи.

Ваши тесты должны покрывать следующие сценарии:
    * Добавление супергероев в коллекцию.
    * Удаление супергероев из коллекции.
    * Получение супергероя по имени.
    * Обработку ситуации при удалении несуществующего супергероя.

Часть 4: Дополнительное задание

Реализуйте дополнительный метод void updateSuperhero(String name, Superhero newSuperhero) в классе SuperheroManager, который позволяет обновить информацию о супергерое по имени.

Напишите соответствующие тесты для метода updateSuperhero в тестовом классе SuperheroManagerTest.
Список Супер Героев для Тестов
Superhero superheroSuperman = new Superhero("Superman", 10, 35);
Superhero superheroSpiderMan = new Superhero("Spider-Man", 8, 30);
Superhero superheroWonderWoman = new Superhero("Wonder Woman", 9, 28);
Superhero superheroIronMan = new Superhero("Iron Man", 7, 40);
Superhero superheroBlackWidow = new Superhero("Black Widow", 6, 35);
Superhero superheroCaptainAmerica = new Superhero("Captain America", 9, 35);
Superhero superheroThor = new Superhero("Thor", 8, 1500);
Superhero superheroHulk = new Superhero("Hulk", 10, 45);
Superhero superheroAquaman = new Superhero("Aquaman", 7, 35);
Superhero superheroWonderMan = new Superhero("Wonder Man", 8, 32);
Superhero superheroBlackPanther = new Superhero("Black Panther", 7, 35);
Superhero superheroFlash = new Superhero("Flash", 9, 30);
Superhero superheroGreenLantern = new Superhero("Green Lantern", 8, 35);
Superhero superheroAntMan = new Superhero("Ant-Man", 7, 45);
Superhero superheroWolverine = new Superhero("Wolverine", 10, 60);
Superhero superheroStorm = new Superhero("Storm", 9, 40);
Superhero superheroDoctorStrange = new Superhero("Doctor Strange", 8, 45);
Superhero superheroScarletWitch = new Superhero("Scarlet Witch", 7, 35);
Superhero superheroCaptainMarvel = new Superhero("Captain Marvel", 8, 30);
Superhero superheroBlackCanary = new Superhero("Black Canary", 7, 33);
Superhero superheroShazam = new Superhero("Shazam", 9, 32);
Superhero superheroGreenArrow = new Superhero("Green Arrow", 8, 37);
Superhero superheroCatwoman = new Superhero("Catwoman", 7, 35);
Superhero superheroBatgirl = new Superhero("Batgirl", 8, 29);
Superhero superheroRobin = new Superhero("Robin", 7, 22);
Superhero superheroNightwing = new Superhero("Nightwing", 9, 31);
Superhero superheroJoker = new Superhero("Joker", 6, 40);
Superhero superheroHarleyQuinn = new Superhero("Harley Quinn", 7, 29);
Superhero superheroPenguin = new Superhero("Penguin", 5, 54);
Superhero superheroRiddler = new Superhero("Riddler", 6, 41);
Superhero superheroTwoFace = new Superhero("Two-Face", 7, 39);
Superhero superheroScarecrow = new Superhero("Scarecrow", 5, 42);
Superhero superheroPoisonIvy = new Superhero("Poison Ivy", 6, 36);
Superhero superheroBane = new Superhero("Bane", 9, 40);
Superhero superheroRa'sAlGhul = new Superhero("Ra's al Ghul", 10, 700);
Superhero superheroDeathstroke = new Superhero("Deathstroke", 8, 55);

// И так далее...
⚠️ **GitHub.com Fallback** ⚠️