Android模拟Picasso网络响应?

时间:2017-03-17 16:53:51

标签: android picasso android-espresso

我正在使用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;
}

0 个答案:

没有答案