Если один из моих фрагментов, rattingfragment, я должен выполнить щелчок. Если нет, выполните другие действия.Как я знаю, отображается ли один фрагмент (тестовый интерфейс)
Как я знаю, что это фрагмент на моем экране?
Android UI Tests. Ниже мой код, чтобы проверить РЕДАКТИРОВАНИЕ КОД:
@Rule
public ActivityTestRule mActivityRule = new ActivityTestRule<>(MainActivity.class);
@After
public void setUp(){
Logout();
}
@Test
public void shouldOfferRide(){
SystemClock.sleep(1500);
Login();
onView(withId(R.id.searchButton)).perform(typeText(emailSearch));
onView(withId(R.id.searchButton)).perform(pressImeActionButton());
onView(withId(R.id.community_user_ask_button)).perform(click());
SystemClock.sleep(1500);
onView(withId(R.id.button1)).perform(click());
onView(withId(R.id.send_request)).perform(click());
SystemClock.sleep(1500);
((MainActivity)mActivityRule.getActivity()).navItemClick(4);
SystemClock.sleep(3500);
LoginMyrides();
onView(withId(R.id.my_rides_tab_bar)).perform(click());
SystemClock.sleep(1000);
{I have to know is ratingfragment before perform click below}
onView(withId(R.id.rating_bar)).perform(click());
onView(withId(R.id.deny_btn)).perform(click());
}
public void Login(){
onView(withId(R.id.edt_new_login_email)).perform(typeText(emailLogin));
onView(withText(R.string.next_button)).perform(click());
onView(withId(R.id.edt_new_password)).perform(typeText(senha));
onView(withText(R.string.login_new_pass)).perform(click());
}
public void Logout(){
new SessionManager(mActivityRule.getActivity()).logoutUser();
}
}
Существует много решений для этого случая, но лучшим является метод instanceOf, через который вы можете получить то, что является текущим фрагментом. используйте его как if (currentFragmet instanceOf rattingfragment) {} – HAXM
http://stackoverflow.com/a/24589081/4961126 – HAXM