خطأ @Rule في Kotlin: كيفية إصلاح «The @Rule must be public» في اختبارات Android
مرحبًا بالجميع! لقد بدأت للتو في التعامل مع الاختبارات على Android باستخدام Espresso وKotlin. لدي فئة اختبار بسيطة لـ 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
```
لقد بحثت في Google، ويقولون إنه في Java يجب جعل الحقل `public`، لكن في Kotlin أعلنت `val` — أليس هذا حقلًا عامًا؟ حاولت إضافة `@JvmField`، لكنه لا يزال لا يعمل. أرجو إرشادي حول كيفية الإعلان الصحيح عن `ActivityTestRule` في Kotlin لكي يعمل الاختبار؟ أستخدم أحدث إصدارات المكتبات: espresso-core 3.5.1، test runner 1.5.0. سأكون ممتنًا لشرح مفصل.
<<>>