يجب تنفيذ اختبارات مضيف أرشيف Java (JAR) لتوفير تغطية كاملة للرمز البرمجي لبرنامجك. اتّبِع التعليمات لإنشاء اختبارات وحدة محلية. اكتب اختبارات وحدة صغيرة للتحقّق من صحة دالة معيّنة فقط.
مثال
يوفر ملف Blueprint التالي مثالاً بسيطًا لاختبار مضيف JAR لبرنامج Hello World يمكنك نسخه وتعديله حسب احتياجاتك: platform_testing/tests/example/jarhosttest/Android.bp
يتوافق ذلك مع رمز الاختبار الفعلي الذي تم العثور عليه في: platform_testing/tests/example/jarhosttest/test/android/test/example/helloworld/HelloWorldTest.java
في ما يلي لقطة من ملف Blueprint لتسهيل الأمر عليك:
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 host test.test_suites: ["general-tests"],
يطلب الإعداد
static_libs
من نظام الإصدار دمج محتويات الوحدات المسماة في حزمة APK الناتجة للوحدة الحالية. وهذا يعني أنّه من المتوقّع أن ينتج كل وحدة مسماة ملف.jar
. يُستخدَم محتوى الوحدة النمطية لتحديد مراجع مسار الفئة أثناء وقت الترجمة البرمجية، ويتم دمجه في حزمة APK الناتجة.static_libs: [ "junit", ],