2016-03-11 21 views

risposta

18
@Test 
public void clickOnYourNavigationItem_ShowsYourScreen() { 
    // Open Drawer to click on navigation. 
    onView(withId(R.id.drawer_layout)) 
     .check(matches(isClosed(Gravity.LEFT))) // Left Drawer should be closed. 
     .perform(DrawerActions.open()); // Open Drawer 

    // Start the screen of your activity. 
    onView(withId(R.id.nav_view)) 
     .perform(NavigationViewActions.navigateTo(R.id.your_navigation_menu_item)); 

    // Check that you Activity was opened. 
    String expectedNoStatisticsText = InstrumentationRegistry.getTargetContext() 
     .getString(R.string.no_item_available); 
    onView(withId(R.id.no_statistics)).check(matches(withText(expectedNoStatisticsText))); 
} 

Questo fa esattamente quello che stai cercando.

Altri esempi sono disponibili here o here

+0

Sembra che il link codice sorgente per 'navigateTo' in costume ViewAction è rotto. –

+0

@SudarsanGP hai ragione. Sembra che sia stato aggiunto al sdk di Android. Ho intenzione di aggiornare il riferimento nella risposta. Basta usare 'NavigationViewActions' definito in' android.support.test.espresso.contrib' – GVillani82