Я тестирую свое Android-приложение с помощью Robotium и периодически сталкиваюсь с одной проблемой. Мое приложение начинается с SigninActivity, которая позволяет пользователю войти в систему, и после этого он направляется ко второму действию, имеющему список, который заполняется после запроса к веб-серверу.
Первый вопрос: поскольку ко всем моим действиям можно получить доступ только после того, как пользователь вошел в систему, мне нужно запускать каждый тест для каждого действия с экрана входа в систему. Итак, что я делаю для каждого класса тестов активности, я наследую его от
ActivityInstrumentationTestCase2<SigninActivity>
и в методе setUp я вхожу в систему пользователя. Это правильный подход?
Второй вопрос: я хочу проверить данные списка во втором действии, которое заполняется после запроса к веб-серверу. Как упоминалось выше, в моем методе настройки я вхожу в систему и использую
solo.waitForActivity(SecondActivity.class, BIG_TIMEOUT)
solo.waitForView(ListView.class)
чтобы гарантировать, что второе действие и список присутствуют. Проблема в том, что даже с этой проверкой я часто получаю
junit.framework.AssertionFailedError: Can not click on line number 2 as there are only 0 lines available