Korzystanie stare testy JUnit3 stylu na Androida, mogę wykonać następujące czynności destory i wznowić działalność:Destroy i ponownie aktywny z testowaniem Wsparcia Biblioteki
Instrumentation inst = getInstrumentation();
Activity activity = inst.getActivity();
// do something
activity.finish();
Assert.assertTrue(this.activity.isFinishing());
activity = inst.getActivity();
// assert that activity's state is restored
Jak mogę osiągnąć to samo przy użyciu nowego Testowanie biblioteki pomocy technicznej? Nie mam problemu z używaniem Espresso i/lub UI Automator lub jakiegokolwiek innego mechanizmu dostarczonego przez nową bibliotekę.
Aktualizacja:
Próbowałem następujące:
Activity activity = activityTestRule.getActivity();
// do something
activity.finish();
Assert.assertTrue(this.activity.isFinishing());
activity = activityTestRule.getActivity();
// assert that activity's state is restored
Jednak wydaje się, że ActivityTestRule.getActivity()
nie uruchamia aktywność,.
Założę się, że część 'finish()' nie powinna różnić się od poprzedniej. Nie wiem, czy 'getActivity()', wywołany na twoim 'ActivityTestRule', ponownie utworzy zniszczone działanie, czy nie. – CommonsWare
@CommonsWare Próbowałem tego i nie wydaje się, aby ponownie uruchomić działanie. –
Teraz, gdy o tym myślę, nie jestem do końca pewien, jaki stan spodziewasz się przywrócić po 'finish()'. Możesz spróbować wywołać 'launchActivity()' po 'finish()' i zobaczyć co się stanie, chociaż to stworzy nową instancję. Lub, prawdopodobnie, możesz dodać to samemu.[Widżet 'ActivityTestRule'] (https://android.googlesource.com/platform/frameworks/testing/+/android-support-test/rules/src/main/java/android/support/test/rule/ActivityTestRule.java) i siekać! – CommonsWare