1

Я пишу тесты для своего приложения для Android с каркасом Espresso. Пока это работает. Проблема в том, что мне иногда приходится менять Activity.Android Espresso - Тестирование на различные виды деятельности

В этом конкретном случае нажатие кнопки открывает Google PlacePicker для выбора определенной позиции. Но пока это действие показано, Espresso ждет следующего шага. Поэтому вместо того, чтобы взаимодействовать в этой операции, он останавливается, пока я вручную не закрою Place Picker (или тайм-аут не достигнут).

Так это выглядит следующим образом:

onView(withId(R.id.origin)).perform(click()); // opens PlacePicker  
onView(...) // is only executed the moment I manually close the PlacePicker  

Так есть возможность сказать Эспрессо, что активность изменилась для того, чтобы выбрать место и вернуться к моей деятельности? Я не могу взаимодействовать в PlacePicker, элемент обзора не может быть найден из отладчика.

ответ

1

Эспрессо работает только с одним видом деятельности. Он предназначен для тестирования действий.

Вы можете имитировать вызов PlacePicker, вручную набрав onActivityResult с некоторым поддельным (вручную созданным) намерением.

Так называют

onActivityResult(PLACE_PICKER_REQUEST, RESULT_OK, intent) 

вместо

onView(withId(R.id.origin)).perform(click()); // opens PlacePicker  
+0

Ах, как грустно. Но спасибо за информацию. –

+0

Очень гибкий, просто поиграйте с ним некоторое время. Вот хороший обзор некоторых необычных функций - https://google.github.io/android-testing-support-library/docs/espresso/lists/index.html –