Erreur @Rule en Kotlin : comment corriger « The @Rule must be public » dans les tests Android
Bonjour à tous ! Je viens de commencer à me familiariser avec les tests sur Android en utilisant Espresso et Kotlin. J'ai une classe de test simple pour une Activity, et j'essaie d'utiliser `ActivityTestRule`. Le code ressemble à ceci :
```kotlin
@RunWith(AndroidJUnit4::class)
class MainActivityTest {
@Rule
val activityRule = ActivityTestRule(MainActivity::class.java)
@Test
fun testButtonClick() {
onView(withId(R.id.my_button)).perform(click())
}
}
```
Mais quand je lance le test, j'obtiens l'erreur :
```
java.lang.Exception: The @Rule must be public
```
J'ai cherché sur Google, on dit qu'en Java il faut rendre le champ `public`, mais en Kotlin j'ai déclaré `val` — n'est-ce pas un champ public ? J'ai essayé d'ajouter `@JvmField`, mais ça ne fonctionne toujours pas. Dites-moi comment déclarer correctement `ActivityTestRule` en Kotlin pour que le test s'exécute ? J'utilise les dernières versions des bibliothèques : espresso-core 3.5.1, test runner 1.5.0. Je vous serais reconnaissant pour une explication détaillée.
<<>>
Pourquoi l'err
No answers yet.
Connectez-vous pour laisser une réponse