使用不同的Application类测试Android Activity

时间:2015-11-27 14:03:38

标签: android android-testing android-espresso

我正在寻找一种使用JUnit4和ActivityTestRule测试Activity的方法,但是使用不同的应用程序类(例如模拟或继承)。我能够使用清单合并和工具来获取这个项目:在androidTest / AndroidManifest.xml中的application标签上替换=“android:name”。然而,这不适用于应用程序。

任何想法如何做到这一点?

1 个答案:

答案 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"