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。感谢详细解答。
<<>>