@Test
public void testNavigationSelectionListener() {
homeActivity = homeActivityActivityTestRule.getActivity();
BottomNavigationView.OnNavigationItemSelectedListener mockedListener =
mock(BottomNavigationView.OnNavigationItemSelectedListener.class);
mBottomNavigation.setOnNavigationItemSelectedListener(mockedListener);
when(mockedListener.onNavigationItemSelected(any(MenuItem.class))).thenReturn(true);
onView(allOf(withId(R.id.navigation_account),isDisplayed()))
.perform(click());
}
У меня есть эта часть кода, которая проверяет выбор нижнего элемента навигации. Но каждый раз, когда я запускаю, я получаю:
androidx.test.espresso.NoMatchingViewException: Нет подходящих представлений в иерархии:
вышеупомянутая ошибка, хотя представление является присутствует.
Также для Onbackpressed ():
@Override
public void onBackPressed() {
MenuItem homeMenuItem = bottomNavigation.getMenu().getItem(0);
if (bottomNavigation.getSelectedItemId() == homeMenuItem.getItemId()) {
super.onBackPressed();
} else {
SearchFragment searchFragment = (SearchFragment) search_fragment;
if (searchFragment.isVisible() && searchFragment.isSearchOptionScreen()) {
searchFragment.removeSearchData();
} else {
int backStackEntry = getSupportFragmentManager().getBackStackEntryCount();
if (backStackEntry > 0) {
for (int i = 0; i < backStackEntry - 1; i++) {
getSupportFragmentManager().popBackStackImmediate();
}
}
bottomNavigation.setSelectedItemId(homeMenuItem.getItemId());
}
}
}
Я получаю исключение нулевого указателя для меню, поскольку меню не загружено.
Я совершенно новичок в модульном тестировании. Любая помощь будет высоко ценится.