我编写了一个名为TimelapseLibrary的android库。它可以拍摄照片,服务于简单的HTTP服务器来控制该过程。最终客户端创建TimelapseLibrary对象,并在内部创建HTTP服务等。
我不知道如何测试库,如何模拟用户创建TimelapseLibrary时创建的HTTP服务。
我在互联网上发现的简单内容是:
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吗?