Avatar ·

خطأ @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. سأكون ممتنًا لشرح مفصل. <<>>

لماذا يظه