【发布时间】:2021-03-25 22:40:05
【问题描述】:
我正在尝试使用 Espresso 编写一个跨多个片段运行的 UI 测试。他们共享一个通过by activityViewModels() 注入的视图模型。
我正在使用 Android Navigation 组件、Dagger Hilt 注入和模拟的 NavController,如下所示:
val navController = Mockito.mock(NavController::class.java)
launchFragmentInHiltContainer<AddRecipeFragment1> {
Navigation.setViewNavController(requireView(), navController)
}
// Here I need to initialize some data in viewModel...
在此之后,我想导航到另一个我真正想要测试的 Fragment,但无论是按下调用导航的按钮还是调用 navController.navigate(AddRecipeFragment1Directions.toAddRecipeFragment2()) 都不适合我。
使用launchFragmentInHiltContainer<AddRecipeFragment>... 的方法将重新启动整个应用程序并删除视图模型。
有什么想法吗?
【问题讨论】:
标签: android android-espresso android-navigation dagger-hilt