Android 使用Espresso使用NavGraphViewModel对Viewpager进行UI测试
我目前有一个应用程序使用单活动多片段方法,在这个应用程序中有一个片段与其子级共享重要数据,因此我使用了范围为嵌套nav图的navGraphViewModels,如下所示:Android 使用Espresso使用NavGraphViewModel对Viewpager进行UI测试,android,android-fragments,android-viewpager,android-espresso,android-navigation,Android,Android Fragments,Android Viewpager,Android Espresso,Android Navigation,我目前有一个应用程序使用单活动多片段方法,在这个应用程序中有一个片段与其子级共享重要数据,因此我使用了范围为嵌套nav图的navGraphViewModels,如下所示: private val viewModel by navGraphViewModels<MySharedViewModel>(R.id.nested_nav_graph) 但是,由于父片段随后将其子片段加载到viewPager中,并且这些子片段也需要一个NavController,因此我的测试不会超过@Befor
private val viewModel by navGraphViewModels<MySharedViewModel>(R.id.nested_nav_graph)
但是,由于父片段随后将其子片段加载到viewPager中,并且这些子片段也需要一个NavController,因此我的测试不会超过@Before块。任何关于如何将navController设置为子片段的帮助都将不胜感激
val navController = TestNavHostController(ApplicationProvider.getApplicationContext())
// This allows fragments to use by navGraphViewModels()
navController.setViewModelStore(ViewModelStore())
UiThreadStatement.runOnUiThread {
navController.setGraph(R.navigation.nested_nav_graph)
}
val scenario =
launchFragmentInContainer(themeResId = R.style.AppTheme) {
MyFragment().also { fragment ->
fragment.viewLifecycleOwnerLiveData.observeForever { viewLifecycleOwner ->
if (viewLifecycleOwner != null) {
Navigation.setViewNavController(fragment.requireView(), navController)
}
}
}
}
return navController
}