我正在使用espresso来测试当Picasso返回特定响应时应用程序的行为,例如40x,50x,极端尺寸的图像等。例如,
if (path.endsWith("/image")) {
return new MockResponse().setResponseCode(404);
}
我认为MockWebServer会拦截这些电话,但事实并非如此。它仍在进行真正的网络通话。我认为是这样的,因为毕加索可能正在运行自己的网络客户端。
有没有办法告诉Picasso将基本Url设置为localhost?你们是如何测试这种情况的?谢谢。
更新1:Init Picasso
public Picasso getPicasso() {
if(picasso == null) {
OkHttpClient client = new OkHttpClient.Builder()
.addNetworkInterceptor(requestInterceptor)
.addNetworkInterceptor(responseInterceptor)
.followRedirects(true)
.followSslRedirects(true)
.readTimeout(30, TimeUnit.SECONDS)
.connectTimeout(20, TimeUnit.SECONDS)
.build();
picasso = new Picasso.Builder(app)
.downloader(new OkHttp3Downloader(client))
.build();
}
return picasso;
}