[英]FragmentScenario of DialogFragment, onCreateDialog not called
我想使用androidx.fragment:fragment-testing
lib 测试 DialogFragment。 我调用了launchFragmentInContainer
和moveToState(Lifecycle.State.RESUMED)
,但是在这个片段中没有调用onCreateDialog
。
@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)
}
}
}
我调试应用程序,并确保onCreateDialog
早于onResume
被调用,但在这个测试场景中onCreateDialog
没有被调用,所以fragment.dialog
为空。
我应该在FragmentScenario
调用什么才能创建我的对话框?
这在官方文档中有描述。 我们需要调用launchFragment
而不是launchFragmentInContainer
:
launchFragment<PinCatsDialog>().let { scenario ->
scenario
.moveToState(Lifecycle.State.RESUMED)
.onFragment { fragment ->
// Code here
}
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.