Создание рабочего NavController для тестирования

Решил протестировать отдельный фича модуль, модуль в свою очередь имеет файл

навигационный файл

   <fragment
        android:id="@+id/nav_file_search"
        android:name="file_search.FileSearchFragment"
        android:label="@string/fragment_file_search_name" >
        <action
            android:id="@+id/action_take_photo_from_camera"
            app:destination="@id/picker_photo_camera" />
        <action
            android:id="@+id/action_take_photo_from_gallery"
            app:destination="@id/picker_photo_gallery" />
    </fragment>

Так же есть тест

class FileSearchTest: TestCase(), KoinTest {

    @Test
    fun openBottom() = before {
        startKoin { modules(listOf(testModule)) }

        val mockNavController = mock(NavController::class.java)

        launchFragmentInContainer<FileSearchFragment>(
            themeResId = R.style.AppTheme
        ).onFragment{ fragment ->
            Navigation.setViewNavController(fragment.requireView(), mockNavController)
        }

    }.after {
    }.run {
        step("Open bottom pickerBar"){
            FileSearchScreen {
                loadButton.apply {
                    isVisible()
                    click()
                }
            }
        }

        step("Check visible bottom bar") {
            BottomPhotoPickerBarScreen {
                btnChooseFromGallery.isVisible()
                btnChooseFromGallery.click()
            }
        }

        step("take first item") {
            GalleryScreen {
                imgSend.isVisible()
                imgSend.click()
            }
        }

        step("isVisible expend layout") {
            FileSearchScreen {
                expandedLayout.isVisible()
            }
        }

    }
}

внутри step "Check visible bottom bar"

BottomPhotoPickerBarScreen {
                btnChooseFromGallery.isVisible()
                btnChooseFromGallery.click()
            }

вызывается findNavController().navigate(viewAction.navDirections.actionId) на стороне фрагменте, но нужный другой фрагмент не открывается

Как можно построить навигацию во время ui теста, если это фича модуль который ничего не знает о MainActivity в который есть HavHostFragment


Ответы (0 шт):