איך לכתוב מבחן יחידה בגולנג?

Yk Lktwb Mbhn Yhydh Bgwlng



אם אתה מפתח Go, אתה יודע כמה חשובה הבדיקות כדי להבטיח את איכות הקוד שלך. כְּתִיבָה בדיקות יחידה הוא חלק חיוני מתהליך הפיתוח, והוא יכול לעזור לך לתפוס באגים בשלב מוקדם, ולחסוך לך זמן וכסף בטווח הארוך. במאמר זה נדון כיצד לכתוב בדיקות יחידה בגולנג.

מהי בדיקת יחידה?

הצעד הראשון הוא להבין מה בדיקת יחידה אומר. בדיקת יחידה מתייחס לתהליך של בדיקת יחידות קוד קטנות או מודולים כדי להבטיח שכל אחד מהם פועל כמצופה. בדיקת יחידה משמש להסרת בעיות מהקוד, שיפור יציבות הקוד והבטחת נכונות בעת עדכון הקוד. השלב הראשוני של בדיקות תוכנה הוא מבחן יחידה , ואחריו מבחן ממשק המשתמש ומבחן האינטגרציה.

חבילת הבדיקות

בגולנג, בדיקת יחידה מתבצע באמצעות חבילה הנקראת בדיקה . החבילה מספקת פונקציות שונות המאפשרות לנו לבדוק את הקוד שלנו. ניתן לבדוק את קוד ה-Go באופן אוטומטי בעזרת חבילת הבדיקה.







דוגמה לתוכנית לבדיקה

אנחנו צריכים קצת קוד כדי לנתח את המבחנים שלנו לפני שנוכל לכתוב בדיקות יחידה . ניצור תוכנית קטנה שמוסיפה שני מספרים.



החבילה הראשית

יְבוּא (
'fmt'
)
funcAdd ( א int , ב int ) int {
לַחֲזוֹר א + ב
}

func main ( ) {
fmt. Println ( לְהוֹסִיף ( 2 , 3 ) )
}

הקוד לעיל מגדיר את לְהוֹסִיף() פונקציה, שמוסיפה שני מספרים, א ו ב , כקלט ומוציא את התוצאה כמספר שלם. הוספת המספרים 2 ו-3 היא כל מה שהפונקציה הראשית עושה לפני הדפסת התוצאה.







אמנה של מבחני יחידות כתיבה תוך כדי תנועה

לכל פרויקט Go צריך להיות קובץ בדיקה נפרד המכיל את כל הבדיקות של אותו פרויקט. הקובץ צריך להיות בעל שם זהה לזה של הקובץ הנבדק וצריך לקבל _test.go נוסף לסוף שם הקובץ. לדוגמה, אם נרצה לבדוק קובץ בשם calculator.go , עלינו לתת שם לקובץ הבדיקה שלנו calculator_test.go .

זה נוהג מקובל עבור לך לבדוק קבצים להיות ממוקם באותה חבילה או ספרייה כמו הקוד שהם מעריכים. כאשר אתה משתמש בפקודה go build, המהדר לא יוצר את הקבצים האלה, כך שאתה לא צריך להיות מודאג לגבי הופעתם בפריסות.



לכתוב א מבחן יחידה ב-Go, עלינו להשתמש ב- בדיקה חֲבִילָה. נוכל להתחיל כל פונקציית בדיקה במילה מִבְחָן ולאחר מכן הוסף תיאור של מה שאנו רוצים לבדוק. לדוגמה, TestAddition אוֹ מבחן חיסור . לאחר מכן נוכל לכתוב את קוד הבדיקה שבודק האם הפונקציה שאנו בודקים מחזירה את התוצאות הצפויות.

ב-Go, כל פונקציית בדיקה צריכה להתחיל במשפט t := testing.T{}. הצהרה זו יוצרת חדש בדיקה אובייקט שבו נוכל להשתמש כדי לבדוק אם המבחן עבר או נכשל. לאחר מכן נוכל להשתמש ב- t.Errorf() פונקציה להדפסת הודעת שגיאה אם ​​הבדיקה נכשלת.

איך לכתוב את קוד הבדיקה?

כשמדובר בכתיבת מבחני יחידה ב-Go, חשוב להתחיל בציון החבילה שברצונך לבדוק. לאחר ייבוא ​​חבילת הבדיקה, תוכל לגשת לסוגים ושיטות שונות שהחבילה מייצאת, כולל ה testing.T סוּג. הלוגיקה של הבדיקה עצמה נכתבת אז בפונקציה שמתחילה במילת המפתח 'מִבְחָן' ואחריו שם תיאורי, כגון TestAdd() . בתוך פונקציה זו, אתה יכול לכלול את הקוד עבור הבדיקה ואת כל ההצהרות הדרושות כדי לאמת את ההתנהגות הצפויה.

לסיכום, המאפיינים של מבחן ב-Go הם כדלקמן:

  • הפרמטר היחיד והיחיד הנדרש הוא ט *בדיקה.ט
  • פונקציית הבדיקה מתחילה במילה Test ולאחר מכן מופיעה מילה או ביטוי שמתחילים באות גדולה.
  • כדי לציין כישלון, פונקציית הבדיקה צריכה לקרוא לאחד מהם t.Errorf אוֹ t. נכשל, וכדי לספק מידע נוסף על ניפוי באגים מבלי לגרום לכשל, ניתן להשתמש ב-t.Log.
  • כדי לספק מידע על ניפוי באגים שאינו כשל, השתמש ב-t.Log.
  • הבדיקות מאוחסנות בקבצים עם השם foo_test.go , לדוגמה, math_test.go .

סגור את הקובץ לאחר שמירתו.

החבילה הראשית

יְבוּא (
'בדיקה'
)

funcTestAdd ( ט * בדיקה. ט ) {
תוֹצָאָה := לְהוֹסִיף ( 2 , 3 )
אם תוֹצָאָה != 5 {
ט. שגיאה ( 'הוסף(2, 3) = %d; רוצה 5' , תוֹצָאָה )
}
}

ה לְהוֹסִיף() הפונקציה נבדקת על ידי TestAdd() פונקציה, המוגדרת במבחן זה. הוא משתמש במספרים 2 ו-3 כדי להתקשר ל-Add, ואז הוא מאשר שהתוצאה היא 5. הודעת שגיאה מודפסת אם התוצאה קטנה מ-5 כאשר t.Errorf() מופעל.

לבסוף, חשוב לדעת שלגו יש כלי בדיקה מובנה בשם ללכת לבדיקה. כלי זה מפעיל את כל הבדיקות בפרויקט ומספק דוח על התוצאות. לך לבדיקה יש להקליד בטרמינל תוך כדי ספריית הפרויקט כדי להתחיל את הבדיקות. כל הבדיקות בספרייה זו יפעלו כתוצאה מכך.

< חָזָק > ללכת לבדיקה < מִבְחָן - קוֹבֶץ - שֵׁם > _מִבְחָן. ללכת חָזָק >

תוצאות מבחן יחידה

הפלט יראה לך את פונקציות הבדיקה שעברו, נכשלו או דילגו.

PASS או OK מציין שהקוד פועל כמתוכנן. אתה תקבל לְהִכָּשֵׁל אם מבחן נכשל.

ה _test.go סיומת היא היחידה שתת-הפקודה לבדיקת go בודקת בקבצים. לאחר מכן, עבור לבדיקת חיפוש בקבצים אלה עבור כל פונקציה מיוחדת, כגון func TestXxx ועוד כמה אחרים. Go test בונה וקורא לפונקציות הללו בצורה נכונה, מבצע אותן, אוסף ומדווח על התוצאות, ולבסוף מנקה הכל בחבילה ראשית זמנית.

השלב האחרון הוא לשלב את המבחנים שלך בזרימת העבודה שלך בפיתוח. השיטה הטובה ביותר היא להפעיל את הבדיקות שלך בכל פעם שאתה מחייב את הקוד שלך למאגר. השילוב של הבדיקות שלך בזרימת העבודה של הפיתוח שלך מבטיח שהקוד שלך נבדק ברציפות, וכל בעיה נפתרת לפני הפריסה.

סיכום

כְּתִיבָה בדיקות יחידה הוא מרכיב מכריע בפיתוח תוכנה מכיוון שהוא מבטיח שהקוד שלך ניתן להרחבה, פונקציונלי ויעיל. ספריית הבדיקות של Go היא ללא מאמץ ופשוטה לשימוש. אתה אמור להיות מסוגל ליצור Golang בדיקות יחידה באיכות הגבוהה ביותר על ידי ביצוע הנהלים המפורטים לעיל. זכור לשלב את הבדיקות שלך בזרימת העבודה של הפיתוח שלך כדי להבטיח שהקוד שלך נבדק ברציפות, וכל בעיה נפתרת לפני הפריסה.