Avatar ·

Kotlin中的@Rule错误:如何修复Android测试中的“The @Rule must be public”

大家好!我刚开始学习使用Espresso和Kotlin进行Android测试。我有一个简单的Activity测试类,并尝试使用`ActivityTestRule`。代码如下: ```kotlin @RunWith(AndroidJUnit4::class) class MainActivityTest { @Rule val activityRule = ActivityTestRule(MainActivity::class.java) @Test fun testButtonClick() { onView(withId(R.id.my_button)).perform(click()) } } ``` 但当我运行测试时,出现错误: ``` java.lang.Exception: The @Rule must be public ``` 我谷歌了一下,有人说在Java中需要将字段设为`public`,但在Kotlin中我声明了`val`——这难道不是公共字段吗?我尝试添加`@JvmField`,但仍然不起作用。请告诉我如何在Kotlin中正确声明`ActivityTestRule`,以便测试能够运行?我使用的是最新版本的库:espresso-core 3.5.1,test runner 1.5.0。感谢详细解答。 <<>>

为什么会出现这个错误