【发布时间】:2021-01-01 01:08:47
【问题描述】:
我想使用 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 上调用什么来创建我的对话框?
【问题讨论】:
标签: android android-dialogfragment androidx-test