launchFragment 在测试时显示错误

launchFragment while testing showing error

提问人:Bob Redity 提问时间:4/9/2021 更新时间:1/23/2022 访问量:531

问:

使用本指南测试对话框 https://developer.android.com/guide/fragments/test 底部示例

with(launchFragment<MyDialogFragment>()) {
        onFragment { fragment -> // here error
            assertThat(fragment.dialog).isNotNull()
            assertThat(fragment.requireDialog().isShowing).isTrue()
            fragment.dismiss()
            fragment.parentFragmentManager.executePendingTransactions()
            assertThat(fragment.dialog).isNull()
        }
    }

但这里显示错误

 onFragment { fragment -> // error below

类型不匹配。 必填: FragmentScenario.FragmentAction 发现: (???)→单位 无法推断此参数的类型。请明确说明

Android 单元测试 android-espresso robolectric

评论

1赞 ianhanniballake 4/9/2021
您使用的是什么版本?哪个版本的 Kotlin?fragment-testing
0赞 Bob Redity 4/9/2021
@ianhanniballake 1.3.2 片段测试 Kotlin 1.4.30

答:

1赞 Bob Redity 4/10/2021 #1

伙计们,解决方案是 Kotlin 版本。因此,在工作室中更新 Kotlin 插件可以解决问题

评论

1赞 Jorge Guillermo Negrete 8/14/2021
这并没有解决我的问题,使用 1.3.6 和 Kotlin 1.5.20。错误是类型不匹配。必需:无fragment-testing
0赞 ginagigo123 1/23/2022 #2

解决方案是更改模块中的 kotlin 版本。build.gradle

buildscript {
    ext {
        ...
        kotlin_version = "1.5.31"
    }
}

我的原始 kotlin 版本是 1.3.x,它发生了同样的错误。

然后我去 github 获取指南并发现了这一点