Ich habe ein Android-Fragment, das ich testen möchte. Ich habe eine Testaktivität erstellt, zu der ich dieses Fragment hinzufüge und einige Espressotests durchführe.So testen Sie ein Fragment mit Espresso
Allerdings findet Espresso keine der Ansichten innerhalb des Fragments. Es speichert die Ansichtshierarchie und es ist alles leer.
Ich möchte nicht die tatsächliche übergeordnete Aktivität verwenden. Ich möchte dieses Fragment nur isoliert testen. Hat jemand das getan? Gibt es ein Beispiel mit einem ähnlichen Code?
@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;
}
}
Haben Sie versucht, eine Internetsuche durchzuführen? Ich finde viele Beispiele. –
Es ist immer eine gute Idee, uns Ihren Code zu zeigen. – Emzor
Ich habe versucht, im Internet zu suchen. Ich konnte keine Beispiele finden. @DougStevenson, ich würde es begrüßen, wenn Sie teilen könnten, was Sie gefunden haben. – greenrobo