Я знаю, что есть много вопросов по этому поводу, но я не могу найти ничего, что могло бы мне помочь :(
Я попытался использовать Espresso для создания UI-Test для приложения для Android. После решения проблем с зависимостями (потому что некоторые библиотеки включены два раза в разные версии в качестве зависимости от других библиотек) я все еще не могу создавать рабочие тесты ...
Я знаю об IdlingResource, но пока я читал, эспрессо ждет "из коробки", пока основной поток и AsyncTaskPool не перейдут в режим ожидания, прежде чем запускать какие-либо тесты.
Чтобы связаться с ним, я создал простое приложение, содержащее два действия: заставку и основное действие. На заставке есть что-то вроде этого для ожидания в течение трех секунд перед запуском mainActivity
new Handler().postDelayed(new Runnable() {
@Override
public void run() {
finish();
Intent intent = new Intent(SplashScreenActivity.this, MainActivity.class);
startActivity(intent);
}
}, 3000);
Я также пытался использовать для этого AsyncTask, но, похоже, ничего не работает правильно, потому что каждый тест терпит неудачу.
Тест только проверяет, отображается ли TextView, содержащий определенный текст, в представлении:
onView(withText("DummyText")).check(matches(notNullValue()));
Я подумал, что создать простой тест будет не так уж и сложно ...
Поскольку я должен протестировать api> = 16, мне нужен эспрессо. Только для себя я проверил это с помощью uiAutomator (я знаю, что это для api> = 18), но есть такая умная логика, чтобы ждать, пока что-то будет показано ... и это отлично работает ...