Remove ads
מוויקיפדיה, האנציקלופדיה החופשית
JUnit הוא כלי פתוח וחופשי לבדיקות יחידה בשפת התכנות Java. הכלי פותח במשותף על ידי קנט בק ואריך גמא כחלק מעבודתם בנושא פיתוח מונחה-בדיקות ופיתוח תוכנה זריז. JUnit מתבסס על עבודה מוקדמת יותר של קנט בק בכלי SUnit שיועד לשפת התכנות Smalltalk. הכלי הורחב בהמשך לשפות תכנות רבות נוספות ומהווה, נכון לשנת 2007, נדבך יסודי בעבודת התכנות של מתכנתים רבים בעולם.
צילום מסך של JUnit v4 בתוך סביבת הפיתוח Eclipse | |
מפתח | קנט בק ואריך גמא |
---|---|
גרסה אחרונה | 5.11.3 (21 באוקטובר 2024) |
מערכת הפעלה | חוצה-פלטפורמות |
נכתבה בשפות | Java |
סוג רישיון | Common Public License Version 1.0 |
קוד מקור | https://github.com/junit-team/junit5 |
קטגוריה | בדיקות תוכנה |
junit.org | |
JUnit מורכב משני חלקים עיקריים: ספריית פיתוח וכלי גרפי להצגת תוצאות הריצה. ספריית הפיתוח מספקת למתכנת תשתית נוחה לפיתוח בדיקות יחידה שונות. בגמר הפיתוח, המתכנת משתמש בכלי הגרפי, שבדרך כלל הוא חלק אינטגרלי מסביבת הפיתוח, כדי להריץ את הבדיקות. הכלי מספק משוב ויזואלי על תוצאות הריצה, באמצעות פס חיווי ירוק (הצלחה) או אדום (כישלון).
תמיכה מובנית בכלי הבניה Ant ו-Maven מאפשרת להריץ בקלות קבוצה של בדיקות JUnit כחלק מהליך הבנייה של המערכת הנבדקת.
הדוגמה הבאה מציגה תוכנית בדיקה פשוטה בשפת התכנות Java. התוכנית עושה שימוש בספריית הפיתוח של JUnit v4. מטרת הבדיקה היא לבדוק נכונות של ביטוי אריתמטי פשוט. בעת הרצת הבדיקה, ייצור הכלי מופע חדש של המחלקה, ויריץ את המתודות המבוארות ב-@Test
, אחת אחרי השנייה. בגמר הריצה, יציג הכלי הגרפי את תוצאות הריצה בצורה ברורה באמצעות פס החיווי.
public class HelloJUnitWorld {
@Test
public void testMultiplication() {
// Testing if 3*2=6
assertEquals ("Multiplication", 6, 3*2);
}
}
הסבר | פונקציית ביאור |
---|---|
מסמל שהפונקציה היא פונקציית בדיקה |
@Test |
פונקציה שתרוץ לפני כל בדיקה. פונקציה זו יכולה להכין את סביבת הבדיקה (למשל: לקרוא את נתוני הקלט, לאתחל את המחלקה) |
@BeforeEach |
פונקציה שתרוץ לאחר כל בדיקה. פונקציה זו יכולה לנקות את סביבת הבדיקה (למשל: למחוק נתונים זמניים, לשחזר ברירת מחדל). בנוסף יכולה לחסוך בזיכרון על ידי ניכוי מבני נתונים יקרים. |
@AfterEach |
פונקציה זו מתבצעת פעם אחת, לפני תחילת כל הבדיקות. יכול לשמש לביצוע פעולות שדורשות זמן כגון חיבור למסדי נתונים. צריכה להיות מוגדרת כסטטית. |
@BeforeAll |
פונקציה זו מתבצעת פעם אחת, לאחר שכל הבדיקות הסתיימו. יכולה לשמש לביצוע פעולות ניקוי, למשל התנתקות מבסיס נתונים. צריכה להיות מוגדרת כסטטית. |
@AfterAll |
מתעלם מפונקציית הבדיקה. שימושי כאשר הקוד הבסיסי השתנה ומקרי הבדיקה עדיין לא אומצו או שזמן בדיקה זה יותר מידי גדול מלהיכלל |
@Disabled |
הרשמת הרחבות לבדיקות. תכונה זו עוברת בירושת מחלקות. |
@ExtendWith (TestExtention.class) |
משמש לסינון בדיקות לריצה. יכול להיות ברמת המתודה וברמת המחלקה. |
@Tag |
על מנת לבדוק אם התוצאות שקיבלנו בפונקציית הבדיקה תואמות את התוצאות שציפינו לקבל נשתמש במחלקת assert. זוהי מחלקה סטטית הקובעת את תוצאת הבדיקה על ידי השוואה של תוצאת הפונקציה לתוצאה הרצויה. המחלקה קיימת גם ב-JUnit וגם ב-NUnit, כאשר השוני הוא בצורת הכתיבה. מאפשר לאמת את הקוד:
סוגים של assert שניתנים לשימוש:
הרצת הבדיקות ב-JUnit מתבצעת בתוך Eclipse ואין צורך להתקין תוספים נוספים.
NUnit היא שיטת בדיקה הדומה ל-Junit, כאשר השוני העיקרי ביניהן היא שפת הפיתוח שבה משתמשים. עם זאת, קיימים עוד מספר הבדלים מזעריים מבחינת תחביר ואופן הרצת הבדיקות.
מאפיין | NUnit | JUnit |
---|---|---|
שפת פיתוח | C# | Java |
מערכת הפעלה | Net, Mono | רב פלטפורמי |
תחילת שימוש | שימוש חיצוני – בפעם הראשונה דורש התקנה של Nunit וכל פעם יש צורך בהוספת קובץ dll לפרויקט | שימוש פנימי – על ידי הוספת jar של Junit לפרויקט |
יצירת test class | יצירת מחלקת בדיקות באופן ידני. אין תלות במחלקה ספציפית | יצירת מחלקת בדיקות באופן אוטומטי על ידי Junit Test Case |
הרצת הבדיקות | דרך תוכנה חיצונית של Nunit (ניתן להריץ מתוך Visual studio על ידי התקנת תוספים) | מתוך Eclipse על ידי run As JunitTest |
סימון פונקציות בדיקה | לפני הפונקציה תגים מותאמים | שם הפונקציה מתחילה במילה test |
Assertion class | יש לקרוא לפונקציית Assert באמצעות פונקציה סטטית | קריאה לפונקציית Assert ישירות |
פונקציות ביאור Annotations | לפני הפונקציה נגדיר את סוג הפונקציה על ידי [ ] | לפני הפונקציה נגדיר את סוג הפונקציה על ידי @ |
Seamless Wikipedia browsing. On steroids.
Every time you click a link to Wikipedia, Wiktionary or Wikiquote in your browser's search results, it will show the modern Wikiwand interface.
Wikiwand extension is a five stars, simple, with minimum permission required to keep your browsing private, safe and transparent.