Beshere
@Beshere
Разработчик

Можно ли мокировать локальную переменную?

Есть класс и "проблемный" для тестирования метод:

MyClass() {

 public void someMethod() {
  private Problem problemVar = new ProblemVar();
 ...
 }

}


Я не могу прогнать тесты, как обычно, потому что problemVar без боевого сетевого окружения не может инициализиоваться. Есть ли способ как-то замокировать problemVar?
  • Вопрос задан
  • 61 просмотр
Решения вопроса 1
Предположу, что можно, используя PowerMock.
ProblemVar pvMock = mock(ProblemVar.class);
whenNew(ProblemVar.class).withNoArguments().thenReturn(pvMock);


P.S.
Но правильнее сделать так, чтобы problemVar работал в любом окружении, либо такое окружение можно было бы легко мокать в тестах.
Или использовать метод, позволяющий задать инстанс ProblemVar в классе MyClass.
Или использовать в проекте DI
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы