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

يجب تنفيذ اختبارات مضيف أرشيف 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. في المثال التالي، تم تسمية حزمة 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",
    ],