具有AndroidX片段的Robolectric

时间:2018-09-08 12:00:07

标签: android robolectric androidx

如何使用Robolectric测试AndroidX片段?

我添加了testImplementation "org.robolectric:shadows-supportv4:4.0-alpha-3"依赖项,并尝试使用以下代码:

val controller = SupportFragmentController.setupFragment(
            TestableFragment.buildFragment(DATA),
            TestableFragmentHolderActivity::class.java)

TestableFragmentandroidx.fragment.app.Fragment,而TestableFragmentHolderActivityandroidx.appcompat.app.AppCompatActivity

但是在测试过程中出现错误:

  

java.lang.NoSuchMethodError:org.robolectric.shadows.support.v4.SupportFragmentController.setupFragment(Landroidx / fragment / app / Fragment; Ljava / lang / Class;)Landroidx / fragment / app / Fragment;

3 个答案:

答案 0 :(得分:3)

使用Robolectric的最新API可以测试片段的新方法。选中the official doc 您需要创建一个FragmentScenario

val fragmentScenario = launchFragmentInContainer<MyFragment>()

然后像平常一样对Espresso进行测试

onView(withId(R.id.text)).check(matches(withText("Hello World!")))

答案 1 :(得分:1)

请参考以下git问题:https://github.com/robolectric/robolectric/issues/3985。新的AndroidX片段API即将发布。

答案 2 :(得分:-2)

robolectric当前不支持androidx