Я использую (новое) ActivityScenarioRule to UI тесты в моем приложении для Android. Я тестирую несколько фрагментов, каждый в своем отдельном классе. В @Before я перейду к экрану, который буду тестировать. Я пробовал новый FragmentScenario ранее, но у меня было много проблем с неудачными тестами без видимой причины, поэтому я переключился на запуск с активности по умолчанию.
Вот как выглядят тестовые классы:
@RunWith(AndroidJUnit4::class)
class EventDetailsFragmentTest {
@get:Rule
var activityScenarioRule = ActivityScenarioRule<LoginOrRegisterActivity>(LoginOrRegisterActivity::class.java)
private lateinit var uiDevice: UiDevice
@Before
fun goToScreen() {
NavigationUtil.goToNewEventScreen()
uiDevice = UiDevice.getInstance(InstrumentationRegistry.getInstrumentation())
}
@Test
fun eventDetailsFragment_buttonsOpenCorrectScreen() {
onView(withId(R.id.btn_event_details_audio)).perform(click())
...
}
@Test
fun eventDetailsFragment_enterEventTitle() {
...
}
@Test
fun eventDetailsFragment_saveEventWithoutTitleEntered_errorMessage() {
onView(withId(R.id.btn_event_details_send)).perform(click())
...
}
@Test
fun eventDetailsFragment_saveEvent_showsSuccess() {
onView(withId(R.id.btn_event_details_send)).perform(click())
...
}
}
При запуске (connectedCheck) я случайно получаю следующую ошибку один или несколько раз:
1) mainScreenFragment_buttonsOpenCorrectScreen(be.hogent.faith.faith.cityScreen.CityScreenFragmentTest)
05:25:24 V/InstrumentationResultParser: java.lang.RuntimeException: No activities found. Did you forget to launch the activity by calling getActivity() or startActivitySync or similar?
Я думал, что сценарию Activity не понадобится ничего, кроме правила, но должен ли я делать больше? Как вдруг активность исчезает?