ActivityTestRule - как вызвать код перед приложением onCreate
Я использую Espresso 2.1 с ActivityTestRule, и я ищу способ установить некоторые статические флаги до onCreate() в моем приложении.
У меня есть код инициализации, который я не хочу вызывать во время контрольных тестов.
Ответ 1
ПриложениеonCreate() вызывается после Instrumentation onCreate(). Для этого случая вам нужно реализовать пользовательский тестовый бегун, который будет подклассифицировать AndroidJUnitRunner и переопределит callApplicationOnCreate() с вашей настраиваемой настройкой.
public class MyCustomTestRunner extends AndroidJUnitRunner {
@Override
public void callApplicationOnCreate(Application app) {
InstrumentationRegistry.getTargetContext().getSharedPreferences().doMyStuff();
super.callApplicationOnCreate(app);
}
}
Обязательно обновите файл defaultConfig в файле build.gradle, чтобы использовать новый testInstrumentationRunner следующим образом: