Я пишу тестирование Android с помощью Espresso.Предполагается, что это будет автоматический тест для существующего контрольного примера, который состоит из нескольких этапов.Теперь мой метод тестирования выглядит следующим образом:
class TestCaseName {
@Rule
@JvmField
val activityTestRule = ...
@Test
fun hugeUglyTest() {
// step 1: ...
/* performing some actions */
// step 2: ...
/* performing some actions */
// step 3: ...
/* performing some actions */
// step 4: ...
/* performing some actions */
// step 5: ...
/* performing some actions */
// step 5: ...
/* performing some actions */
// and so on ....
}
}
И есть две проблемы:
- Это выглядит некрасиво
- Это очень труднонайти шаг, вызвавший сбой
Я хотел разделить этот огромный метод тестирования на отдельные и выполнить каждый из них как шаг теста, например:
class TestCaseName {
@Rule
@JvmField
val activityTestRule = ...
@Test
fun step_1_name() {
/* performing some actions */
}
@Test
fun step_2_name() {
/* performing some actions */
}
// and so on
}
Я создал свой собственный JUnitRunner, который сортирует эти методы по номеру шага и сохраняет экземпляр теста.
Проблема в том, что я не могу заставить Espresso поддерживать приложение между вызовами методов.Он всегда закрывает запущенную активность, но мне нужно держать ее открытой, чтобы пройти следующие шаги из той же точки.Я пытался создать пользовательский ActivityTestRule
, но безуспешно.