Выбор ответа Junior Тестирование: JUnit 5 и Mockito обновлено
Что возвращает мок по умолчанию
Вопрос
Метод repo.findById(1L) возвращает Optional<User>. Что он вернёт у @Mock без настройки?
Попробуйте сами
Выберите вариант, и откроется разбор.
Показать ответ и разбор
Коротко
Правильный ответ: Optional.empty(). Mockito по умолчанию возвращает «пустые» значения: null для обычных объектов, 0 и false для примитивов, пустые коллекции, пустой Optional и пустой Stream.
Варианты ответа
Optional.empty()правильный ответnull- Будет выброшено исключение о ненастроенном методе
- Настоящий результат из БД
Разбор
Mockito по умолчанию возвращает «пустые» значения: null для обычных объектов, 0 и false для примитивов, пустые коллекции, пустой Optional и пустой Stream. Исключения нет: моки «мягкие». Настоящий метод вызывает только spy.
Ответьте сами, а не прочитайте
В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.