Прежде всего, вы должны понять, что вы собираетесь делать!
Видите ли, вы либо издеваетесь над классом X ... потому что экземпляр X используется в некоторыхкласс Y, и вы намереваетесь проверить Y .Или вы намереваетесь проверить класс X, но тогда вам не следует издеваться над экземплярами X!Либо вы тестируете X, либо используете X для тестирования чего-то другого.
Предполагая, что вы хотите смоделировать экземпляр вашего класса RetrieveData
, вы просто делаете:
RetrieveData resultObj = Mockito.mock(RetrieveData.class);
Mockito.when(resultObj.retrieveMetaData()).thenReturn(42);
Итак,чтобы выровнять с этим комментарием Тобба: вы не можете "насмехаться" над этим полем результатов в одиночку.Если вообще, вы можете высмеивать полные экземпляры вашего класса.Но, как сказано: это имеет смысл, когда вы используете этот экземпляр в другом классе, который вы собираетесь тестировать.
Короче говоря: как уже говорилось, реальная проблема заключается в том, что вы пытаетесь использоватьпонятия, которые вы просто не понимаете (здесь нет суждения).Моя рекомендация: начните с прочтения хорошего учебника по Mockito .Затем потратил много времени на размышления «как я могу написать код, который я могу тестировать разумными способами».Вы пытаетесь начать с шага 10, но это не сработает, потому что вы можете сделать это только тогда, когда сделали шаги с 1 по 9 раньше, и понять, о чем они.
И да, вы можете использовать Mockito шпион , если вы хотите "частичное издевательство".Используя это, вы можете тестировать части X, в то же время «вычеркивая» другие части X. Но это действительно продвинутая функция, и, скорее всего, не тема, которую вы должны изучить в первую очередь.