android - 尝试模拟 NavController 时出错
问题描述
尝试遵循示例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)
}
}
任何想法?
解决方案
对我来说,改变我的依赖
androidTestImplementation 'org.mockito:mockito-core:3.2.4'
至
androidTestImplementation 'org.mockito:mockito-android:3.2.4'
运作良好。
推荐阅读
- excel - 检索设置为 true 的 pivotItems 的值?
- r - R:如何按组计算观察之间的比率?
- react-native - React Navigation Stack 不会覆盖桌面上的整个屏幕
- python - 为什么我的 TypeError 说“+ 不支持的操作数类型:‘int’和‘str’
- sql - postgres如何进行条件连接
- python - 函数中的参数说明
- loops - 有什么方法可以在frama C中的循环内指定先决条件?
- python - 运行命令 python app.py 时人脸识别项目显示错误
- python - 打印冰糕口味
- node.js - OAuth 1.0 将 Consumer Secret 转换为 oauth_signature