1.Когда вы что-то макетируете, все методы, которые имеют тип возвращаемого значения, просто возвращают ноль по умолчанию (или эквиваленты в случае примитивов).Поскольку макет сам по себе не имеет реализации, вызов метода ничего не делает (в основном он обрабатывает как пустой метод).
2.С чего бы это?Вы отображаете разные возвращаемые значения для разных методов, нет возможности переопределить что-либо.
Edit3: я только что удалил свою предыдущую попытку объяснить это.Содержание ссылки лучше всего, что я могу придумать.Так что это нелегко понять.
Как работает вызов mockito when ()?
На другой ноте:
Возможно, вы этого не сделаетенужно использовать Reflections, чтобы поместить макет в ваш объект.Проверьте @InjectMocks & @Mock.Поэтому, как вы можете их использовать (или как их использовать), зависит от вашей версии JUnit и Mockito.( Как использовать Mockito с JUnit5 )