Ошибка при попытке издеваться над NavController - PullRequest
0 голосов
/ 17 июня 2019

Попытка следовать примеру https://developer.android.com/guide/navigation/navigation-testing, У меня ожидаемая ошибка

org.mockito.exceptions.base.MockitoException: Mockito не может издеваться над этим классом: класс androidx.navigation.NavController.

даже после включения всех зависимостей, как здесь: https://developer.android.com/training/testing/set-up-project

@RunWith(AndroidJUnit4::class)
class MyShopFragmentTest {

    @Test
    fun testMyShopScenario_F001() {
        // Create a mock NavController
        val mockNavController = mock(NavController::class.java)

        // Create a graphical FragmentScenario for the MyShopFragment
        val myShopFragmentScenario = launchFragmentInContainer<MyShopFragment>()

        // Set the NavController property on the fragment
        myShopFragmentScenario.onFragment { fragment ->
            Navigation.setViewNavController(fragment.requireView(), mockNavController)
        }

        // Verify that performing a click prompts the correct Navigation action
        onView(ViewMatchers.withId(R.id.search)).perform(ViewActions.click())
        verify(mockNavController).navigate(R.id.searchFragment)
    }
}

Есть идеи?

1 Ответ

0 голосов
/ 26 июня 2019

Решением было использование полностью открытой аннотации (https://kotlinlang.org/docs/reference/compiler-plugins.html) и настройка проекта, как описано здесь -> https://developer.android.com/training/testing/set-up-project

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