From 1d3adceed083975bcda21110e92857d1a1fcc565 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=92=D0=BE=D0=BB=D0=BE=D0=B4=D0=B8=D0=BD=20=D0=93=D0=B5?= =?UTF-8?q?=D1=80=D0=BC=D0=B0=D0=BD?= Date: Fri, 21 Aug 2026 20:08:28 +0400 Subject: [PATCH] test: add JUnit test requirements --- docs/tasks/Testing.md | 67 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 67 insertions(+) create mode 100644 docs/tasks/Testing.md diff --git a/docs/tasks/Testing.md b/docs/tasks/Testing.md new file mode 100644 index 0000000..26f898c --- /dev/null +++ b/docs/tasks/Testing.md @@ -0,0 +1,67 @@ +# Общее техническое задание: тестирование + +## Задача + +Для всех реализованных классов написать автоматические тесты с использованием **JUnit**. + +## Требования + +1. Для каждого основного класса проекта должны быть написаны тесты. + +2. Проверить: + + - корректное выполнение основных методов; + - корректную обработку некорректных данных; + - граничные случаи; + - ожидаемые исключения. + +3. Для `Student` проверить: + + - создание корректного объекта; + - невозможность создания объекта с некорректными данными; + - работу `Builder`; + - `equals()` и `hashCode()`. + +4. Для `MyLinkedList` проверить: + + - `add()`; + - `get()`; + - `set()`; + - `remove()`; + - `size()`; + - `isEmpty()`; + - некорректные индексы. + +5. Для `MergeSortStrategy` проверить: + + - сортировку по каждому из трёх полей; + - уже отсортированную коллекцию; + - обратный порядок; + - коллекцию из одного элемента; + - пустую коллекцию. + +6. Для каждого компаратора проверить правильное сравнение объектов `Student`. + +7. Тесты должны быть независимыми друг от друга и воспроизводимыми. + +8. Необходимо использовать JUnit и стандартные средства проверки результатов. + +## Результат + +Тесты размещать отдельно от основного кода, например: + +```text +src/ +├── main/ +│ └── java/ +└── test/ + └── java/ + ├── StudentTest.java + ├── MyLinkedListTest.java + ├── MergeSortStrategyTest.java + ├── StudentGroupComparatorTest.java + ├── StudentAverageGradeComparatorTest.java + └── StudentRecordBookComparatorTest.java +``` + +Все тесты должны успешно проходить перед слиянием ветки в `main`.