我想使用androidx.fragment:fragment-testinglib 测试 DialogFragment。我调用launchFragmentInContainerand 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来创建我的对话框?