我想使用
androidx.fragment:fragment-testing
库来测试 DialogFragment。
我调用了 launchFragmentInContainer
和 moveToState(Lifecycle.State.RESUMED)
,但是这个 fragment 中的 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
中调用什么方法,以便创建我的对话框?