Stetho是非常不错的调试工具,Robolectric是在单元测试中模拟android运行环境的工具。
创建shadow class
正常情况下,我们是这样使用的:
testCompile "org.robolectric:robolectric:3.1"
debugCompile 'com.facebook.stetho:stetho:1.3.1'
这时候可以用Robolectric的shadow类模拟一个空的替代。
先把stetho的相关操作都集中到一个类
public class StethoUtil {
static public void init(Application application){
Stetho.initializeWithDefaults(application);
OkHttp.create(OkHttp.getDefaultBuilder().addNetworkInterceptor(new StethoInterceptor()));
}
}
创建shadow class
@Implements(StethoUtil.class)
public class ShadowStethoUtil {
static public void init(Application application){
}
}
@RunWith(RobolectricGradleTestRunner.class)
@Config(constants = BuildConfig.class, sdk = 23, shadows = ShadowStethoUtil.class)
public class UserManagerTest {...}
这样,在测试环境中执行的就是ShadowStethoUtil了