1. مبتدئ

    ما هو هرم الاختبارات (Testing Pyramid) في أندرويد وما النسبة المقترحة لكل نوع؟

    يقسم الاختبارات إلى: Unit Tests سريعة ورخيصة في القاعدة (70%)، Integration Tests في الوسط (20%)، و End-to-End UI Tests شاملة وبطيئة في القمة (10%).

    اقرأ الشرح الكامل
  2. متوسط

    كيف تختبر منطق الـ ViewModel باستخدام مكتبة MockK ومجسمات المحاكاة (Mocks)؟

    بمحاكاة التبعيات عبر mockk() وتحديد سلوكها المتوقع بواسطة every أو coEvery، ثم التحقق من استدعاء الدوال عبر verify أو coVerify.

    اقرأ الشرح الكامل
  3. متوسط

    كيف تختبر كود يعتمد على الكوروتينات باستخدام runTest وموزعات الاختبار (TestDispatchers)؟

    باستخدام runTest التي تقفز تلقائيًا عبر تأخيرات الوقت (delay skipping)، واستبدال Dispatchers.Main بموزع اختبار عبر Dispatchers.setMain.

    اقرأ الشرح الكامل
  4. متوسط

    ما الفرق بين اختبارات Robolectric واختبارات الأجهزة الحقيقية (Instrumentation Tests)؟

    تنفذ Robolectric اختبارات معتمدة على Android SDK مباشرة على جهاز الحاسوب (JVM) بمحاكاة كائنات أندرويد وظلالها (Shadows) بسرعة فائقة ودون الحاجة لتشغيل محاكي أو جهاز حقيقي.

    اقرأ الشرح الكامل
  5. متقدم

    كيف تعمل اختبارات واجهة المستخدم في Jetpack Compose بالاعتماد على شجرة الـ Semantics؟

    تستخدم ComposeTestRule للبحث في شجرة المعاني (Semantics Tree) ومطابقة العناصر بنصوصها أو دورها والتحقق من التفاعل معها بشكل مستقل عن تفاصيل الرسم الداخلي.

    اقرأ الشرح الكامل