Выбор ответа Junior Тестирование: JUnit 5 и Mockito обновлено

Что возвращает мок по умолчанию

Вопрос

Метод repo.findById(1L) возвращает Optional<User>. Что он вернёт у @Mock без настройки?

Попробуйте сами

Выберите вариант, и откроется разбор.

Показать ответ и разбор

Коротко

Правильный ответ: Optional.empty(). Mockito по умолчанию возвращает «пустые» значения: null для обычных объектов, 0 и false для примитивов, пустые коллекции, пустой Optional и пустой Stream.

Варианты ответа

  1. Optional.empty()правильный ответ
  2. null
  3. Будет выброшено исключение о ненастроенном методе
  4. Настоящий результат из БД

Разбор

Mockito по умолчанию возвращает «пустые» значения: null для обычных объектов, 0 и false для примитивов, пустые коллекции, пустой Optional и пустой Stream. Исключения нет: моки «мягкие». Настоящий метод вызывает только spy.

Ответьте сами, а не прочитайте

В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.

Термины по теме