diff --git a/HW_MOCKITO.md b/HW_MOCKITO.md index b36087a..1177136 100644 --- a/HW_MOCKITO.md +++ b/HW_MOCKITO.md @@ -1,21 +1,21 @@ -# Домашнее задание к занятию "Композиция и зависимость объектов. Mockito при создании автотестов" +# Домашнее задание к занятию «Композиция и зависимость объектов. Mockito при создании автотестов» ## Цель задания -1. Научиться проектировать классы, внутреннее состояние которых содержит наборы данных +1. Научиться проектировать классы, внутреннее состояние которых содержит наборы данных. ------ ## Инструкция к заданию -1. Скачайте и установите профессиональный редактор кода [Intellij Idea Community Version](https://www.jetbrains.com/idea/download/) -1. Откройте IDEA и [создайте и настройте новый Maven-проект](QA_Maven_Idea_Create.md) (под каждую задачу следует создавать отдельный проект, если обратное не сказано в условии) +1. Скачайте и установите профессиональный редактор кода [IntelliJ IDEA Community Version](https://www.jetbrains.com/idea/download/). +1. Откройте IDEA, [создайте и настройте новый Maven-проект](QA_Maven_Idea_Create.md). Под каждую задачу следует создавать отдельный проект, если обратное не сказано в условии. 2. Создайте пустой репозиторий на GitHub и свяжите его с папкой вашего проекта (не с какой-либо другой папкой). -3. Правильно настройте репозиторий в плане `.gitignore`. Проигнорируйте папки `.idea` и `target` (раньше была `out`) и `.iml`-файл - их в репозитории быть не должно. -4. Закоммитьте и запушьте созданный проект на гитхаб, [настройте Github Actions](QA_CI.md), сделайте `git pull`. -4. Выполните в IDEA требуемую задачу согласно условию. -5. Проверьте соблюдение [правил форматирования кода](QA_Java_Idea_Format.md) -6. Убедитесь что при запуске `mvn clean verify` (раньше было `mvn clean test`) все тесты запускаются, проходят, а сборка завершается успешно +3. Правильно настройте репозиторий в плане `.gitignore`. Проигнорируйте папки `.idea` и `target` (раньше была `out`) и `.iml`-файл — их в репозитории быть не должно. +4. Закоммитьте и запушьте созданный проект на GitHub, [настройте GitHub Actions](QA_CI.md), сделайте `git pull`. +4. Выполните в IDEA требуемую задачу по условию. +5. Проверьте соблюдение [правил форматирования кода](QA_Java_Idea_Format.md). +6. Убедитесь, что при запуске `mvn clean verify` (раньше было `mvn clean test`) все тесты запускаются, проходят, а сборка завершается успешно. 7. Закоммитьте и отправьте в репозиторий содержимое папки проекта. 8. Убедитесь, что CI запустился на последнем коммите и завершился успешно (зелёная галочка). @@ -23,9 +23,9 @@ ## Материалы, которые пригодятся для выполнения задания -1. [Как создать Maven-проект в IDEA?](QA_Maven_Idea_Create.md) -1. [Как отформатировать код в Java?](QA_Java_Idea_Format.md) -1. [Как настроить CI на основе Github Actions?](QA_CI.md) +1. [Как создать Maven-проект в IDEA](QA_Maven_Idea_Create.md). +1. [Как отформатировать код в Java](QA_Java_Idea_Format.md). +1. [Как настроить CI на основе GitHub Actions](QA_CI.md). ------ @@ -35,7 +35,7 @@ ![image](https://user-images.githubusercontent.com/53707586/152697921-e71d853c-aa2e-482b-be61-39e6c2cfb0b1.png) -В этой задаче не нужно разделять менеджер и репозиторий — все фильмы должны храниться внутри массива в поле самого менеджера. Изначально, сразу после создания, менеджер не должен содержать фильмов. +В этой задаче не нужно разделять менеджер и репозиторий. Все фильмы должны храниться внутри массива в поле самого менеджера. Изначально, сразу после создания, менеджер не должен содержать фильмов. Менеджер должен уметь выполнять следующие операции: 1. Добавление нового фильма. @@ -44,7 +44,7 @@ *Сделайте так, чтобы по умолчанию выводилось последние 5 добавленных фильма, но при создании менеджера можно было указать другое число, чтобы, например, выдавать 7 или 3, а не 5. То есть у менеджера должно быть два конструктора: один без параметров, выставляющий лимит менеджера в 5, а другой с параметром, берущий значение лимита для менеджера из параметра конструктора. -Метод получения последних фильмов будет очень похож на тот, что был в лекции. Основное отличие в том, что вам в его начале надо будет вычислить правильный ожидаемый размер результирующего массива-ответа, а не просто брать длину массива, что лежит в поле. Сделать это можно, заведя целочисленную переменную, в которую вы сохраните желаемый размер создаваемого массива, вычислите с помощью условных операторов для неё значение, а затем только создадите массив, указав эту переменную как требуемый для него размер, например: +Метод получения последних фильмов будет очень похож на тот, который был в лекции. Основное отличие в том, что вам в его начале надо будет вычислить правильный ожидаемый размер результирующего массива-ответа, а не просто брать длину массива, который лежит в поле. Сделать это можно, заведя целочисленную переменную, в которую вы сохраните желаемый размер создаваемого массива, вычислите с помощью условных операторов для неё значение, а затем только создадите массив, указав эту переменную как требуемый для него размер, например: ```java ... @@ -64,25 +64,25 @@ Не забывайте про использование отладчика для поиска проблем вашей реализации, если тесты проходить не будут. -Напишите необходимые, с вашей точки зрения, автотесты на различные состояния менеджера. Можно делать их не в одном файле. +Напишите необходимые с вашей точки зрения автотесты на различные состояния менеджера. Можно делать их не в одном файле. ------ -## Правила приема работы +## Правила приёма работы -Прикреплена ссылка на публичный репозиторий с решением задачи +Прикреплена ссылка на публичный репозиторий с решением задачи. ------ ## Критерии оценки -1. В каждом репозитории размещено содержимое папки проекта IDEA. Корнем репозитория должна именно папка проекта - не папка `src`, не папка внутри которой лежит папка проекта; т.о. в корне репозитория должна лежать сразу папка `src`. -1. Есть файл `.gitignore`, игнорирующий ненужные файлы и папки, которые должны отсутствовать в репозитории. Если они присутствуют - их нужно оттуда удалить. -1. Программа соответствует всем требованиям из условия задачи -1. Программа использует только те инструменты языка, которые мы проходили или которые прямо разрешены условием задачи -1. Программа работает правильно на всех примерах из условия -1. Программный код отформатирован и соответствует пройденным требованиям к качеству кода -1. При запуске `mvn clean verify` тесты запускаются и проходят, а сборка завершается успешно -2. В репозитории настроен CI на основе Github Actions и он успешно прошёл на последнем коммите -3. Программа спроектирована достаточно логично и правильно, не противоречит общепринятым в производстве практикам и традициям -4. При наличии недочётов, в зависимости от их серьёзности и количества, работа может быть отправлена на доработку или принята; решение принимается на основе экспертной оценки работы. +1. В каждом репозитории размещено содержимое папки проекта IDEA. Корнем репозитория должна быть именно папка проекта — не папка `src`, не папка, внутри которой лежит папка проекта. В корне репозитория должна лежать сразу папка `src`. +1. Есть файл `.gitignore`, игнорирующий ненужные файлы и папки, которые должны отсутствовать в репозитории. Если они присутствуют, их нужно оттуда удалить. +1. Программа соответствует всем требованиям из условия задачи. +1. Программа использует только те инструменты языка, которые мы проходили или которые прямо разрешены условием задачи. +1. Программа работает правильно на всех примерах из условия. +1. Программный код отформатирован и соответствует пройденным требованиям к качеству кода. +1. При запуске `mvn clean verify` тесты запускаются и проходят, а сборка завершается успешно. +2. В репозитории настроен CI на основе GitHub Actions и он успешно прошёл на последнем коммите. +3. Программа спроектирована достаточно логично и правильно, не противоречит общепринятым в производстве практикам и традициям. +4. При наличии недочётов, в зависимости от их серьёзности и количества, работа может быть отправлена на доработку или принята; решение принимается на основе экспертной оценки.