BottomNavigationView Модульное тестирование с помощью эспрессо - PullRequest
0 голосов
/ 17 февраля 2020
 @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());
            }
        }
    }

Я получаю исключение нулевого указателя для меню, поскольку меню не загружено.

Я совершенно новичок в модульном тестировании. Любая помощь будет высоко ценится.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...