我正在寻找一种使用JUnit4和ActivityTestRule测试活动的方法,但使用不同的应用程序类(例如模拟或继承)。我能够在库项目中使用清单合并和androidTest / AndroidManifest.xml中的工具:replace =“android:name”在应用标签上来实现这一点。但是,对于应用程序,这种方法不起作用。
有什么想法可以做到这一点吗?
我正在寻找一种使用JUnit4和ActivityTestRule测试活动的方法,但使用不同的应用程序类(例如模拟或继承)。我能够在库项目中使用清单合并和androidTest / AndroidManifest.xml中的工具:replace =“android:name”在应用标签上来实现这一点。但是,对于应用程序,这种方法不起作用。
有什么想法可以做到这一点吗?
你可以通过创建自己的Runner并覆盖newApplication()
方法,以自定义应用程序类来创建AndroidJUnitRunner
的子类。
public class CustomTestRunner extends AndroidJUnitRunner {
@Override
public Application newApplication(ClassLoader cl, String className, Context context) throws InstantiationException, IllegalAccessException, ClassNotFoundException {
return super.newApplication(cl, CustomTestApplication.class.getName(), context);
}
}
请确保按照以下方式使用新的Runner更新您的build.gradle文件:
testInstrumentationRunner "com.mypackage.name.path.CustomTestRunner"
A
,而其他测试使用类B
?比如我想让一些测试使用带有依赖注入的应用程序,而另一些则不使用。 - Sreekanth