我正在使用带有ActivityTestRule的Espresso 2.1,我正在寻找一种在我的应用程序中调用onCreate()
之前设置一些静态标志的方法。
我有一些我不希望在仪器测试期间调用的初始化代码。
答案 0 :(得分:23)
onCreate()
之后调用 应用 onCreate()
。在这种情况下,您需要实现一个自定义测试运行器,它将子类化AndroidJUnitRunner,并将使用您的自定义设置覆盖callApplicationOnCreate()。
public class MyCustomTestRunner extends AndroidJUnitRunner {
@Override
public void callApplicationOnCreate(Application app) {
InstrumentationRegistry.getTargetContext().getSharedPreferences().doMyStuff();
super.callApplicationOnCreate(app);
}
}
确保更新build.gradle中的defaultConfig以使用新的testInstrumentationRunner,如下所示:
testInstrumentationRunner "com.myapp.MyCustomTestRunner"
如果您希望在活动 onCreate()
之前运行一些代码,请将ActivityTestRule子类化为您自己的beforeActivityLaunched()
实现
答案 1 :(得分:0)
我在 Kotlin 中通过在我的测试方法中添加这个来解决这个问题:
git foobar
然后在该调用之前或在您的 /bin/sh
方法中添加/更新您的变量。