smd*_*edy 13 android integration-testing unit-testing android-espresso
我正在使用带有ActivityTestRule的Espresso 2.1,我正在寻找一种方法来设置一些静态标志,然后onCreate()
才会调用我的应用程序.
我有一些我不希望在仪器测试期间调用的初始化代码.
Be_*_*ive 24
应用程序 onCreate()
在Instrumentation之后调用onCreate()
.对于这种情况,您需要实现一个自定义测试运行器,它将子类化AndroidJUnitRunner并将使用您的自定义设置覆盖callApplicationOnCreate().
public class MyCustomTestRunner extends AndroidJUnitRunner {
@Override
public void callApplicationOnCreate(Application app) {
InstrumentationRegistry.getTargetContext().getSharedPreferences().doMyStuff();
super.callApplicationOnCreate(app);
}
}
Run Code Online (Sandbox Code Playgroud)
确保更新build.gradle中的defaultConfig以使用新的testInstrumentationRunner,如下所示:
testInstrumentationRunner "com.myapp.MyCustomTestRunner"
Run Code Online (Sandbox Code Playgroud)
如果您希望在Activity 之前运行一些代码onCreate()
,请将ActivityTestRule子类化为您自己的实现beforeActivityLaunched()