Robolectric使用shadowOf报错httpclient找不到

在使用Robolectric  shadowOf方法的时候,发现一运行单测就报错

Error:(26, 30) 错误: 无法访问AndroidHttpClient
找不到android.net.http.AndroidHttpClient的类文件

在google上找到了答案,在android api23开始google就移除了HttpClinet相关的类,有两种方法解决上述问题。

方法一:在build.gradle添加应用useLibrary ‘org.apache.http.legacy’

android { compileSdkVersion 23 buildToolsVersion "23.0.0" useLibrary 'org.apache.http.legacy' .... }

方法二:在test目录下添加HttpClient类(记得包名为android.net.http)

如果你项目中没有用到HttpClient,推荐第二种方法,第二种方法正式打包并不会把HttpClient的类加入,减少了包中无用的资源。

参考:https://github.com/robolectric/robolectric/issues/1862