يجب تنفيذ اختبارات مضيف أرشيف Java (JAR) لتوفير تغطية كاملة للرموز البرمجية لبرامجك. اتّبِع تعليمات إنشاء اختبارات الوحدات المحلية. اكتب اختبارات وحدات صغيرة للتحقّق من دالة معيّنة فقط.
مثال
يوفّر ملف المخطط التالي مثالاً بسيطًا لاختبار مضيف Hello World JAR لنسخ احتياجاتك والتكيف معها: platform_testing/tests/example/jarhosttest/Android.bp
يتوافق ذلك مع رمز الاختبار الفعلي المتوفّر على الرابط التالي: platform_testing/tests/example/jarhosttest/test/android/test/example/helloworld/HelloWorldTest.java
يتم تضمين لقطة من ملف المخطط هنا لتسهيل الأمر:
java_test_host {
name: "HelloWorldHostTest",
test_suites: ["general-tests"],
srcs: ["test/**/*.java"],
static_libs: [
"junit",
"mockito",
],
}
يشير بيان java_test_host
في البداية إلى أنّ هذا اختبار مضيف JAR. يمكنك الاطّلاع على مثال لاستخدامه في:
frameworks/base/tools/powermodel/Android.bp
الإعدادات
يمكنك الاطّلاع أدناه على شرح الإعدادات التالية:
يكون إعداد
name
مطلوبًا عند تحديد نوع الوحدةjava_test_host
(في بداية الكتلة). يمنح هذا الإعداد اسمًا لملف الوحدة، ويحمل ملف JAR الناتج الاسم نفسه مع إضافة لاحقة.jar
. في المثال أدناه، يُطلق اسم JAR على نتيجة الاختبار باسمHelloWorldHostTest.jar
. بالإضافة إلى ذلك، يحدّد هذا الإعداد أيضًا اسم هدف إنشاء لوحدتك، بحيث يمكنك استخدامmake [options] <HelloWorldHostTest>
لإنشاء وحدتك الاختبارية وجميع الوحدات التابعة لها.name: "HelloWorldHostTest",
يجعل الإعداد
test_suites
الاختبار سهل الاكتشاف من خلال حزمة اختبار Trade Federation. يمكن إضافة مجموعات اختبار أخرى هنا، مثل CTS، لكي تتمكّن من مشاركة اختبار مضيف JAR.test_suites: ["general-tests"],
يؤدي إعداد
static_libs
إلى توجيه نظام التصميم لدمج محتوى الوحدات المحدّدة في حزمة APK الناتجة من الوحدة الحالية. وهذا يعني أنّه من المتوقّع أن تُنشئ كل وحدة مُسمّاة ملفًا بتنسيق.jar
. يتم استخدام محتوى الوحدة لتحليل مراجع مسار الطباعة أثناء وقت الترجمة، ويتم دمجها في حزمة APK الناتجة.static_libs: [ "junit", ],