בפיתוח תוכנה, בדיקת יחידות היא תהליך המבודד ובודק חלקים ייעודיים של אפליקציה. יחידות הן המונח הפורמלי למדורים ייעודיים אלה. ביישום Java שלך, יחידה היא שיטה.
ישנן מסגרות רבות לבדיקת יחידות זמינות עבור מפתחי Java. בין המסגרות המובילות נמצא JUnit 5.
מדוע בדיקת יחידות חשובה?
אם אי פעם כתבת הצהרות ניפוי באגים כדי להדפיס ולבדוק את הערך של משתנה, מזל טוב; יצרת מבחן יחידה. קטע זריקת קוד זה היה הכרחי מכיוון שלא קיבלת את הפלט הרצוי.
אבל מה אם היית מקבל את הפלט הרצוי והקוד עדיין מכיל שגיאה איפשהו? ייתכן שתפרוס את היישום ובאג זה עלול לגרום לפרצת אבטחה מאוחר יותר. עבור יישומים המאחסנים נתונים של משתמשים, ההימור גבוה כאשר ישנה פרצת אבטחה.
בדיקת יחידות מתמקדת בכל חלק ביישום שלך - בין אם הוא גורם כרגע לשגיאה או לא. לכן, בדיקת יחידות משחקת תפקיד משמעותי ב אבטחת תוכנה טובה.
מה זה JUnit 5?
JUnit 5 הוא יותר מסתם עוד מסגרת לבדיקת יחידות. יש לו כמה פרויקטים משנה, כלומר פלטפורמת JUnit, JUnit Jupiter ו-JUnit Vintage. לכל אחד משלושת הרכיבים הללו יש מודולים ייחודיים הפועלים יחד כדי לשפר את הבדיקות עבור מתכנתי Java.
פלטפורמת JUnit 5 זמינה בגרסאות האחרונות של פלטפורמות הפיתוח המשולבות של Java (IDE). ה-IDE של Java התומכים ב-JUnit 5 הם:
- IntelliJ IDEA
- ליקוי חמה
- NetBeans
- Visual Studio Code
יצירת בדיקות יחידה עם JUnit 5
תוכנית לדוגמה זו משתמשת ב-JUnit 5 כדי ליצור מספר בדיקות יחידות ביישום מחשבון פשוט.
כיתת המחשבון
חֲבִילָה אפליקציה;
פּוּמְבֵּימעמדמַחשְׁבוֹן{
פּוּמְבֵּיסטָטִיintלְהוֹסִיף(int מספר 1, int מספר 2){
לַחֲזוֹר num1 + num2;
}פּוּמְבֵּיסטָטִיintלהחסיר(int מספר 1, int מספר 2){
לַחֲזוֹר num1 - num2;
}פּוּמְבֵּיסטָטִיintלְהַכפִּיל(int מספר 1, int מספר 2){
לַחֲזוֹר num1 * num2;
}
פּוּמְבֵּיסטָטִיintלחלק(int מספר 1, int מספר 2){
לַחֲזוֹר num1 / num2;
}
}
ה שיעור Java לעיל מבצע ארבע פעולות סטטיות: חיבור, חיסור, כפל וחילוק. כל שיטה לוקחת שני ארגומנטים שלמים ומחזירה ערך שלם בודד.
כיתת המבחן JUnit 5
חֲבִילָה מִבְחָן;
יְבוּאסטָטִי org.junit. לִטעוֹן.*;
יְבוּא אפליקציה. מַחשְׁבוֹן;
יְבוּאorg.junit.מִבְחָן;פּוּמְבֵּימעמדמחשבון מבחן{
@מִבְחָן
פּוּמְבֵּיבָּטֵלtestAdd(){
assertEquals(7, מַחשְׁבוֹן.לְהוֹסִיף(3, 4));
}@מִבְחָן
פּוּמְבֵּיבָּטֵלמבחן חיסור(){
assertEquals(6, מַחשְׁבוֹן.להחסיר(9, 3));
}@מִבְחָן
פּוּמְבֵּיבָּטֵלבדיקה הכפל(){
assertEquals(10, מַחשְׁבוֹן.לְהַכפִּיל(5, 2));
}
@מִבְחָן
פּוּמְבֵּיבָּטֵלtestdivide(){
assertEquals(2, מַחשְׁבוֹן.לחלק(4, 2));
}
}
מחשבון מבחן מציג שני מושגים חשובים: ה @מִבְחָן ביאור ואת assertEquals() שיטה. הערת @Test מציינת שהשיטה שמתחתיה היא שיטת בדיקה. במחלקת הבדיקה למעלה ישנן ארבע שיטות בדיקה, אחת לכל אחת מפעולות המחשבון.
כל שיטות הבדיקה משתמשות בשיטת assertEquals(). שיטה זו לוקחת שני ארגומנטים חובה וארגומנט שלישי אופציונלי. הארגומנט הראשון שניתן לשיטת assertEquals() למעלה הוא התוצאה הצפויה, והארגומנט השני הוא השיטה (או היחידה) שברצונך להעריך.
למחלקה CalculatorTest אין שיטה ראשית, אך הערות JUnit @Test הופכות כל אחת משיטות הבדיקה לניתנות להפעלה. ביצוע המחלקה CalculatorTest ב-eclipse מייצר את הממשק הבא:
כפי שאתה יכול לראות, כל מבחן מוצלח. ישנם ארבעה בדיקות, וכולם רצו ללא שגיאות או כשלים.
בדיקת יחידות למידה יכולה להרחיב את הזדמנויות הקריירה שלך
כמפתח, לדעת כיצד לבדוק תוכנה היא מיומנות יתרון. זה בהחלט ישפר את זרימת העבודה שלך, ובתקווה יקל על השימוש בקוד שלך עבור אחרים. עם זאת, ישנו ענף של פיתוח תוכנה המתמקד אך ורק בבדיקות. מהנדסים אלו ידועים בתור בודקי תוכנה.