Ресурс холостого хода эспрессо не работает, если в onCreate Активности запущено долго выполняемое задание?
Как использовать ресурс эспрессо на холостом ходу, если в onCreate Активности запущена длительно выполняемая задача?
Я создал собственный IdlingResource, и он работает нормально, если длинный асинхронный вызов метода запускается событием click, но прерывается всякий раз, когда он вызывается в методе Acitivty onCreate.
Пример:
public void onBtnClick(){
setIdle(true); // This works fine, our tests wait until setIdle(false) is called
doSomeBackgroundTask();
}
public void onDone(){
setResourceIdle(false);
setIdle(false);
}
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setIdle(true); // This doesn't work, our tests won't wait
doSomeBackgroundTask();
}
Есть идеи, чтобы преодолеть эту ситуацию?
1 ответ
Попробуйте зарегистрировать ваш idlingResource перед активацией onCreate.
просто @Before
Метод должен быть достаточно.
Вы также можете реализовать свой собственный ActivityRule и переопределить beforeActivityLaunched()
метод, если вы используете эспрессо-правила
Или, если вы хотите выполнить какой-либо код перед созданием приложения, вам нужно реализовать собственный тестовый прогон и переопределить callApplicationOnCreate()
Пример тестового правила показан здесь: ActivityTestRule - как вызывать код перед onCreate приложения.