Я работаю над компонентом, который динамически создает запросы HTTP, и я хотел бы быть в состоянии имитировать эти запросы для модульного тестирования.Инъекционная зависимость с Guice в методе неконструктора
В настоящее время реализация выглядит следующим образом:
class ModelClass {
public void populate() {
HTTPRequest request = new HTTPRequest();
//configure request...
request.send();
}
}
Есть ли способ использовать Guice для создания экземпляра request
так что я могу заменить его с экземпляром макетом класса для тестирования? Ближайший я могу понять, можно было бы добавить инжектор, как например, переменная ModelClass:
class ModelClass {
private final Injector injector;
ModelClass(Injector injector){
this.injector = injector;
}
public void populate() {
HTTPRequest request = injector.getInstance(HTTPRequest.class);
//configure request...
request.send();
}
}
Но это в основном, как с помощью завод, который пропускает точку Guice полностью.
Рассмотрите возможность использования [Jukito] (https://github.com/ArcBees/Jukito). Он объединяет Guice, JUnit и Mockito в единую структуру. – durron597