Fehler @Rule in Kotlin: So beheben Sie „The @Rule must be public“ in Android-Tests
Hallo zusammen! Ich habe gerade mit dem Testen auf Android mit Espresso und Kotlin begonnen. Ich habe eine einfache Testklasse für eine Activity und versuche, `ActivityTestRule` zu verwenden. Der Code sieht so aus:
```kotlin
@RunWith(AndroidJUnit4::class)
class MainActivityTest {
@Rule
val activityRule = ActivityTestRule(MainActivity::class.java)
@Test
fun testButtonClick() {
onView(withId(R.id.my_button)).perform(click())
}
}
```
Aber wenn ich den Test ausführe, erhalte ich einen Fehler:
```
java.lang.Exception: The @Rule must be public
```
Ich habe gegoogelt, es wird geschrieben, dass man in Java das Feld `public` machen muss, aber in Kotlin habe ich `val` deklariert – ist das nicht ein öffentliches Feld? Ich habe versucht, `@JvmField` hinzuzufügen, aber es funktioniert immer noch nicht. Können Sie mir sagen, wie ich `ActivityTestRule` in Kotlin korrekt deklariere, damit der Test läuft? Ich verwende die neuesten Bibliotheksversionen: espresso-core 3.5.1, test runner 1.5.0. Ich wäre für eine ausführliche Erklärung dankbar.
<<>>
Warum tritt der Fehler auf?
Noch keine Antworten.
Anmelden um eine Antwort zu hinterlassen
Blogs