כדי לספק כיסוי מלא של הקוד בתוכנה, צריך להטמיע בדיקות של מארח 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 test harness לגלות את הבדיקה בקלות. אפשר להוסיף לכאן חבילות בדיקה אחרות, כמו CTS, כדי שאפשר יהיה לשתף את בדיקת המארח של ה-JAR.test_suites: ["general-tests"],
ההגדרה
static_libs
מורה למערכת ה-Build לשלב את התוכן של המודולים שצוינו ב-APK שמתקבל של המודול הנוכחי. כלומר, כל מודול בעל שם אמור ליצור קובץ.jar
. התוכן של המודול משמש לפתרון הפניות לנתיב המחלקה במהלך ההידור, והוא משולב בקובץ ה-APK שמתקבל.static_libs: [ "junit", ],