Я пишу библиотеку Android, названную TimelapseLibrary.Он может снимать фотографии, обслуживать простой HTTP-сервер, чтобы контролировать процесс.Конечный клиент создает объект TimelapseLibrary, и это внутренне создает службу HTTP и многое другое.
Я не знаю, как проверить библиотеку, как смоделировать службу HTTP, которая создается, когда пользователь создает TimelapseLibrary.
ЧтоЯ обнаружил в Интернете, просто написать:
public class TimelapseLibrary {
private HttpService httpService;
public static TimelapseComponent component;
public TimelapseLibrary() {
if(component == null) {
component = DaggerTimelapseComponent.create();
}
this.httpService = component.getHttpService();
}
}
@Component
public interface TimelapseComponent {
HttpService getHttpService();
}
И в тестах использовать это так:
TimelapseLibrary.component = customTestComponentDefined;
TimelaseLibrary lib = new TimelaseLibrary();
Но этот customTestComponent не может быть определен в androidTest , это не скомпилирует.Даже если, на мой взгляд, это все еще плохо, потому что мы используем статический вызов для установки компонента.
Как это сделать правильно?С использованием dagger2, mockito?