اختبارات مضيف JAR

يجب تنفيذ اختبارات مضيف أرشيف 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",
    ],