בדיקות של מארחי JAR

צריך להטמיע בדיקות מארח של קובץ Java archive‏ (JAR) כדי לספק כיסוי מלא של הקוד בתוכנה. פועלים לפי ההוראות ליצירת בדיקות יחידה מקומיות. כותבים בדיקות יחידה קטנות כדי לאמת פונקציה ספציפית בלבד.

דוגמה

קובץ Blueprint הבא מכיל דוגמה פשוטה לבדיקת מארח JAR של Hello World, שאפשר להעתיק ולהתאים לצרכים שלכם: 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 עבור המודול, כך שתוכלו להשתמש ב-make [options] <HelloWorldHostTest> כדי ליצור את מודול הבדיקה ואת כל יחסי התלות שלו.

    name: "HelloWorldHostTest",
    
  • ההגדרה test_suites מאפשרת לכלי הבדיקה של Trade Federation למצוא בקלות את הבדיקה. אפשר להוסיף לכאן חבילות בדיקה אחרות, כמו CTS, כדי שאפשר יהיה לשתף את בדיקת המארח של JAR.

    test_suites: ["general-tests"],
    
  • ההגדרה static_libs מורה למערכת ה-build לשלב את התוכן של המודולים שצוינו בחבילת ה-APK שמתקבלת מהמודול הנוכחי. כלומר, כל מודול בעל שם אמור ליצור קובץ .jar. תוכן המודול משמש לפתרון הפניות לנתיב הספריות בזמן הידור, והוא משולב בקובץ ה-APK שנוצר.

    static_libs: [
        "junit",
    ],