如何解决如何测试活动处理的片段导航
我想测试由MainActivity处理的片段导航。
为此我创建了HomeFragmentTest
类
@MediumTest
@RunWith(AndroidJUnit4::class)
class HomeFragmenTest {
@Rule
@JvmField
val mockitoRule: MockitoRule = MockitoJUnit.rule()
@Test
fun onUsersButtonClick_navigateUsersListFragmet() {
val navController = mock(NavController::class.java)
val fragScenario = launchFragmentInContainer<UsersListFragment>()
fragScenario.onFragment {
Navigation.setViewNavController(it.requireView(),navController)
}
onView(withId(R.id.usersButton))
.perform(click())
verify(navController).navigate(R.id.usersListFragment)
}
}
运行测试将调用按钮单击操作,然后viewmodel
调用将将事件发布到MainActivity
的导航方法。 MainActivity观察到此事件并调用navController
导航方法
viewmodel.navAction.observe(this,{ direction ->
navController?.navigate(direction)
})
问题是我的测试失败了
Wanted but not invoked:
navController.navigate(2131296591);
Actually,there were zero interactions with this mock.
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。