Mam fragment Androida, który chcę przetestować. Stworzyłem testową akcję, do której dodałem ten fragment i uruchomiłem kilka testów Espresso.Jak testować fragment za pomocą Espresso
Jednak Espresso nie znajduje żadnego z widoków wewnątrz fragmentu. Zrzuca hierarchię widoków i jest pusty.
Nie chcę używać rzeczywistej aktywności rodzica. Chcę tylko przetestować ten fragment w izolacji. Czy ktoś to zrobił? Czy istnieje próbka, która ma podobny kod?
@RunWith(AndroidJUnit4.class)
class MyFragmentTest {
@Rule
public ActivityTestRule activityRule = new ActivityTestRule<>(
TestActivity.class);
@Test
public void testView() {
MyFragment myFragment = startMyFragment();
myFragment.onEvent(new MyEvent());
// MyFragment has a recyclerview.
//OnEvent is EventBus callback that in this test contains no data.
//I want the fragment to display empty list text and hide the recyclerView
onView(withId(R.id.my_empty_text)).check(matches(isDisplayed()));
onView(withId(R.id.my_recycler)).check(doesNotExist()));
}
private MyFragment startMyFragment() {
FragmentActivity activity = (FragmentActivity) activityRule.getActivity();
FragmentTransaction transaction = activity.getSupportFragmentManager().beginTransaction();
MyFragment myFragment = new MyFragment();
transaction.add(myFragment, "myfrag");
transaction.commit();
return myFragment;
}
}
Czy próbowałeś wyszukiwać w Internecie? Znajduję wiele przykładów. –
Zawsze dobrze jest pokazać nam swój kod. – Emzor
Próbowałem szukać w sieci. Nie znalazłem żadnych przykładów. @DougStevenson, byłbym wdzięczny, gdybyś mógł podzielić się tym, co znalazłeś. – greenrobo