android - 转换异常 - AndroidJUnitRunner 无法转换为 RoboMonitoringInstrumentation
问题描述
使用 Android Instrumented Test 来启动和测试这个片段
但是我遇到了这个讨厌的错误。
java.lang.ClassCastException: androidx.test.runner.AndroidJUnitRunner cannot be cast to org.robolectric.android.fakes.RoboMonitoringInstrumentation
at org.robolectric.android.internal.LocalActivityInvoker.getInstrumentation(LocalActivityInvoker.java:153)
at org.robolectric.android.internal.LocalActivityInvoker.startActivity(LocalActivityInvoker.java:40)
at androidx.test.core.app.ActivityScenario.launchInternal(ActivityScenario.java:265)
at androidx.test.core.app.ActivityScenario.launch(ActivityScenario.java:226)
at androidx.fragment.app.testing.FragmentScenario$Companion.internalLaunch$fragment_testing_release(FragmentScenario.kt:588)
at androidx.fragment.app.testing.FragmentScenario$Companion.launchInContainer(FragmentScenario.kt:559)
at com.example.android.architecture.blueprints.todoapp.taskdetail.TaskDetailFragmentTest.activeTasks_displayedInUi(TaskDetailFragmentTest.kt:35)Tests ran to completion.
这些是我正在使用的依赖项
一直在网上寻找答案,但我没有找到任何有用的发现。
我能错过什么?
解决方案
您应该检查 Roboelectric 依赖关系并确保它是testImplementation
就我而言,我使用的是这个版本
implementation "org.robolectric:robolectric:4.5.1
当我切换到测试实现时,错误消失了。
testImplementation "org.robolectric:robolectric:4.5.1"