Домашнее задание к занятию «3.1. Исключения»
Задача №1.PostNotFoundException Давайте разберёмся, как внедрить в сервис с постами возможность комментирования.
Нужно добавить метод createComment в WallService:
class WallService { private var posts = emptyArray() private var comments = emptyArray()
fun createComment(postId: Int, comment: Comment): Comment {
TODO()
}
} Функция сначала должна проверить, существует ли в массиве posts пост с ID равным postId. Если существует, то добавить комментарий в массив comments и вернуть только что добавленный комментарий.
Если не существует, выкинуть исключение PostNotFoundException.
Спроектировать класс для комментариев вам нужно самостоятельно на базе описания типа Comment. Есть сохранённая копия.
Итог: у вас должен быть репозиторий на GitHub, в котором расположен ваш Gradle-проект.
Задача №2. JUnit Напишите два теста на созданную функцию:
Функция отрабатывает правильно, если добавляется комментарий к правильному посту. Функция выкидывает исключение, если была попытка добавить комментарий к несуществующему посту. Вот как протестировать, что какой-то код выкидывает исключение:
@Test(expected = PostNotFoundException::class) fun shouldThrow() { // здесь код с вызовом функции, которая должна выкинуть PostNotFoundException } При этом assert в конце теста не нужен. Достаточно сделать вызов функции, которая должна выкинуть исключение.
Важно: после ваших обновлений WallService должна оставаться функциональной, т. е. автотесты должны проходить.