我正在寻找一种使用JUnit4和ActivityTestRule测试Activity的方法,但是使用不同的应用程序类(例如模拟或继承)。我能够使用清单合并和工具来获取这个项目:在androidTest / AndroidManifest.xml中的application标签上替换=“android:name”。然而,这不适用于应用程序。
任何想法如何做到这一点?
答案 0 :(得分:27)
您可以使用自己的跑步者继承AndroidJUnitRunner
,并使用自定义应用程序类覆盖newApplication()
。
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);
}
}
确保使用新的运行程序更新build.gradle,如下所示:
testInstrumentationRunner "com.mypackage.name.path.CustomTestRunner"