ActivityInstrumentationTestCase2.getActivity()
запускает Activity при первом вызове, а затем просто возвращает Activity при каждом последующем вызове в тестовом примере.Таким образом, вы все еще смотрите на действие, которое вы завершили.
После того, как вы закончите первое действие, вам нужно начать новое с теста.Вы можете использовать InstrumentationTestCase.launchActivity()
, например.
В качестве другого примера я написал тест, который нажимает кнопку в ActivityA, которая запускает ActivityB for-result;Затем тест немедленно убивает ActivityA (с помощью изменения ориентации, но будет работать и finish ()), а затем тест получает указатель на новый ActivityA, который система создает при выполнении ActivityB, и отправляет свой результат.Хитрость заключалась в том, чтобы тест добавлял Instrumentation.ActivityMonitor, а затем заставлял этот монитор ждать, пока система запустит новый ActivityA, и даст тесту указатель.