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