如何实例化Fragment类?

时间:2019-10-15 04:45:01

标签: android android-fragments kotlin

我正在尝试为Fragment类编写单元测试。 这样可以实例化“被测系统”吗?

val sut = MyFragment()

我知道有几种编写用于测试片段的UI测试的方法,但是我想实例化Fragment类,在其中可以将片段中的测试方法单元化。

如,

@Test
fun testComponents() {
    val bundle = Bundle()
    val context = sut.requireContext()
    sut.checkPwdEditTextIsEmpty(text = "")
}

我如何在Kotlin中做到这一点?

此外,如何在Kotlin测试中编写init()和tearDown()?

1 个答案:

答案 0 :(得分:3)

requireContext()之类的方法和访问片段视图的方法要求将片段添加到FragmentManager。根据{{​​3}},您可以使用FragmentScenario准确地编写这些类型的测试:

@Test
fun testComponents() {
    val scenario = launchFragmentInContainer<MyFragment>()
    scenario.onFragment { sut ->
        val context = sut.requireContext()
        sut.checkPwdEditTextIsEmpty(text = "")
    }
}