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

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

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

MyClass() {

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

}


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


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

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

Войти через центр авторизации
Похожие вопросы
Bell Integrator Ульяновск
До 400 000 ₽
Bell Integrator Ижевск
До 400 000 ₽
Bell Integrator Хабаровск
До 400 000 ₽
29 мар. 2024, в 10:00
10000 руб./за проект
29 мар. 2024, в 09:59
750 руб./в час
29 мар. 2024, в 09:55
50000 руб./за проект