مع نمو تطبيقك، قد تجد أنه من المفيد وضع بعض مكونات تطبيقك في عملية أخرى غير العملية الرئيسية لتطبيقك. لاختبار مكونات التطبيق في غير التلقائية، يمكنك استخدام وظيفة Multiprocess Espresso. تتيح لك هذه الأداة المتوفرة على نظام التشغيل Android 8.0 (المستوى 26 من واجهة برمجة التطبيقات) والإصدارات الأحدث ما يلي: اختبار التفاعلات مع واجهة المستخدم في تطبيقك بكل سلاسة مع الحفاظ على ضمانات مزامنة Espresso.
عند استخدام قهوة إسبرسو متعددة العمليات، احتفظ بالإصدارات والنطاق التاليَين: اعتبارات مهمة:
- يجب أن يستهدف تطبيقك الإصدار Android 8.0 (المستوى 26 من واجهة برمجة التطبيقات) أو الإصدارات الأحدث.
- يمكن للأداة اختبار مكونات التطبيق التي تدرجها فقط في العمليات داخل حزمة التطبيق. لا يمكنه اختبار العمليات الخارجية.
استخدام الأداة
يجب إضافة مرجع لاختبار عملية داخل تطبيقك باستخدام Multiprocess Espresso
إلى عنصر espresso-remote في ملف build.gradle
لتطبيقك:
Groovy
dependencies { ... androidTestImplementation 'androidx.test.espresso:espresso-remote:3.6.1' }
Kotlin
dependencies { ... androidTestImplementation('androidx.test.espresso:espresso-remote:3.6.1') }
يجب أيضًا إضافة ما يلي إلى بيان androidTest
لتطبيقك:
- تمثّل هذه السمة عنصر
<instrumentation>
يحدّد العملية. - عنصر
<meta-data>
يشير إلى أنّك تريد استخدام قهوة إسبريسو متعددة العمليات
يعرض مقتطف الرمز التالي كيفية إضافة هذه العناصر:
<manifest ... package="androidx.test.mytestapp.tests"> <uses-sdk android:targetSdkVersion="27" android:minSdkVersion="14" /> <instrumentation android:name="androidx.test.runner.AndroidJUnitRunner" android:targetPackage="androidx.test.mytestapp" android:targetProcesses="*"> <meta-data android:name="remoteMethod" android:value="androidx.test.espresso.remote.EspressoRemote#remoteInit" /> </instrumentation> </manifest>
يشير المقتطف السابق لإطار عمل Android الذي تريد أن يختبره
كل عملية في حزمة التطبيق. إذا كنت ترغب في اختبار مجموعة فرعية فقط من
يمكنك تحديد قائمة مفصولة بفواصل داخل
عنصر targetProcesses
بدلاً من ذلك:
<instrumentation
...
android:targetProcesses=
"androidx.test.mytestapp:myFirstAppProcessToTest,
androidx.test.mytestapp:mySecondAppProcessToTest" ... />
فهم بنية الأداة
عند اختبار تطبيقك وإطلاق عمليته التلقائية، يمكنك تنفيذ واجهة مستخدم. تفاعل، مثل الضغط على الزر، الذي يبدأ نشاطًا في الدفع. يُكمل النظام بعد ذلك الخطوات التالية لتفعيل الإجراءات المتقاطعة للاختبار باستخدام قهوة الإسبريسو:
- ينشئ إطار عمل Android عملية جديدة ويبدأها لاتباع إرشادات تطبيقك
هيكل التنقل. كل عملية
Instrumentation
يتضمن مثيلاً جديدًاAndroidJUnitRunner
في هذه المرحلة، لا يمكن أن تتواصل عمليتا الأدوات مع كل منهما آخر. - على كل
AndroidJUnitRunner
يقوم المثيل بتسجيل Espresso كإطار اختبار له. - المثيلان
AndroidJUnitRunner
إجراء المصافحة لإنشاء اتصال بينهم. مماثل الوقت، وكلAndroidJUnitRunner
هذه المنصة تربط جميع العملاء المسجَّلين، مثل Espresso، بحساباتهم نظرائها في عمليات أخرى بحيث يمكن لهؤلاء العملاء تشكيل قناة تواصل فيما بينهم. - كل
AndroidJUnitRunner
المثيل يبحث عن مثيلات الأدوات والاختبار التي تمت إضافتها مؤخرًا إطار العمل، وإنشاء قنوات اتصال إضافية حسب الحاجة.
يوضح الشكل 1 نتيجة هذه العملية:
مصادر إضافية
لمزيد من المعلومات حول هذا الموضوع، يُرجى الاطّلاع على المراجع التالية.
- التطوير المستند إلى اختبار على Android من خلال دعم اختبار Android المكتبة فيديو جلسة من مؤتمر Google I/O لعام 2017، والذي يبدأ في الساعة 36:41.