我想使用androidx.fragment:fragment-testing
lib 测试 DialogFragment。我调用launchFragmentInContainer
and 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
为 null。
我应该调用什么FragmentScenario
来创建我的对话框?