gpt4 book ai didi

android - DialogFragment的FragmentScenario,onCreateDialog未调用

转载 作者:行者123 更新时间:2023-12-04 15:18:25 27 4
gpt4 key购买 nike

我想使用 androidx.fragment:fragment-testing 测试 DialogFragment库。
我调用 launchFragmentInContainermoveToState(Lifecycle.State.RESUMED) , 但是 onCreateDialog在这个 fragment 中没有被调用。

    @Test
fun `submit search - presenter state is changed`() {
val p: PinCatsPresenter = F.presenter(PinCatsPresenter.COMPONENT_ID)!!

launchFragmentInContainer<PinCatsDialog>().let { scenario ->
scenario
.moveToState(Lifecycle.State.RESUMED)
.onFragment { fragment ->
assertFalse(p.state.isFiltered)

fragment.dialog!!.findViewById<SearchView>(R.id.search_field).let {
it.isIconified = false
it.setQuery("ea", true)
}
awaitUi()
assertTrue(p.state.isFiltered)
assertEquals(3, p.state.count)
}
}
}
我调试了应用程序,并确保 onCreateDialogonResume 之前调用, 但在这个测试场景中 onCreateDialog没有被调用,所以 fragment.dialog一片空白。
我应该调用什么电话 FragmentScenario所以我的对话框会被创建?

最佳答案

这在 official documentation 中有描述。 .我们需要调用launchFragment而不是 launchFragmentInContainer :

   launchFragment<PinCatsDialog>().let { scenario ->
scenario
.moveToState(Lifecycle.State.RESUMED)
.onFragment { fragment ->
// Code here
}
}

关于android - DialogFragment的FragmentScenario,onCreateDialog未调用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63882141/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com