Задать вопрос
@Konstantin1706

Как замокать static объект через Mockito?

Имеется некоторый объект, который содержит статическое поле.
В тестах проаннотировал статическое поле через Mock, а также указал следующее:
when(staticObject.getAnotherMethod()).thenReturn("test");

Причем в самих тестах объект замокался, но когда дохожу до вызова метода этого статического поля - он null.
Stackoverflow подсказывает делать данную процедуру через PowerMock, но мне это не подходит.
Как правильно его замокать, чтобы при вызове метода(getAnotherMethod) мог вернуть заведомо известное значение?
Спасибо.
  • Вопрос задан
  • 1269 просмотров
Подписаться 2 Оценить 1 комментарий
Помогут разобраться в теме Все курсы
  • Яндекс Практикум
    Java-разработчик
    10 месяцев
    Далее
  • Skillfactory
    Профессия Java-разработчик
    14 месяцев
    Далее
  • Хекслет
    Java-разработчик
    10 месяцев
    Далее
Решения вопроса 1
@AndreiLED
Короткий ответ: никак, Mockito позволяет замокать только локальные поля/методы

Длинный ответ: надо править тестируемый код, чтобы добавить в него возможность из теста заменить стандартное значение статического поля замокированным. Или конвертировать статическое поле в локальное, что является рекомендованным подходом при написании тестируемого кода.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы