Unit Tests
-
שלום,
אז אני הנחשונית הראשונה...
אני יודעת שעדיין אין כאן ציבור גדול, אבל שואלת בכ"ז, אולי מישהי תוכל לעזור ולהחכים.
כשאני צריכה לכתוב unit tests, אני הרבה פעמים מתלבטת איך בדיוק לכתוב, לאילו רזולוציות לרדת, איך לדעת לאילו מקרי קצה להתיחס וכולי.
מישהי מכירה מדריך טוב ומקצועי שיכול לעזור? (אני לא מתכוונת להדרכה תחבירית, כי זה תלוי שפה. אלא משהו תיאורטי, על היסודות והעקרונות)אשמח מאד לשמוע!
-
בוקר טוב
לאף אחת אין חומר? -
תכתבי לפי הדרישות של מסמך האפיון, ולפי ההגיון.
אם את רואה שבאופן קבוע ישנם באגים סביב מקרי קצה שאינם מתוארים באפיון תוסיפי. כשאת צמודה למסמך לעולם לא יוכלו להאשים אותך..
כמובן שהגדלת ראש אינה גורעת -
נראלי שאין ממש חומר מסודר על הנושא
משיטוט קצר ראיתי את הקישור הבא, שלדעתי מביא נקודות חשובות שכדאי שיהיו בתודעות כשכותבים בדיקות יחידה:
https://stackify.com/unit-testing-basics-best-practices/ -
@ורד
אני גם כותבת Unit Tests כחלק בלתי נפרד מהפיתוח הכללי,
הכללים (לפחות אצלנו) הם בעצם כמו כללים של תסריטי בדיקות,
יש לעבור על הקוד, ולראות שכל שורה מכוסה ע"י טסט,- דבר ראשון זה ה input של הפונקציה, צריך לבדוק input תקין, לא תקין, NULL , ריק, וכדומה, כשכל דוגמא כמובן היא TestMethod
- בתוך הפונקציה כל מקום שיש תנאי ( If ) צריך טסט בשביל התנאי if==true וכן בשביל if==false. כמה שהתנאי מורכב מיותר תנאים - יהיו יותר טסטים.
- ב Visual Studio יש כלי נחמד, שרץ על הטסטים ומסמן לך אילו שורות קוד לא מכוסות, וכמה אחוזים מכוסים מבחינת טסטים. את יכולה לקרא עליו כאן.
-
@ns איזה פונקציות את בודקת עם unit test?
יש פונקציות שמאוד קל לכתוב להם, הם יכולים לעמוד בפני עצמם, והם לא מסתמכים על מקור נתונים.
נגיד יש לי פרויקט API ששולף ומעדכן נתונים מ-DB
כמעט ולא מצאתי פונקציות שאפשר לבודד, בלי קריאת HTTP, ובלי להתחבר ל-DB.
אלא בעיקר פונקציות utility שהצלחתי לכתוב להם.
אשמח להחכים בנושא.
תודה מראש:) -
@ps אמר בUnit Tests:
@ns איזה פונקציות את בודקת עם unit test?
יש פונקציות שמאוד קל לכתוב להם, הם יכולים לעמוד בפני עצמם, והם לא מסתמכים על מקור נתונים.
נגיד יש לי פרויקט API ששולף ומעדכן נתונים מ-DB
כמעט ולא מצאתי פונקציות שאפשר לבודד, בלי קריאת HTTP, ובלי להתחבר ל-DB.
אלא בעיקר פונקציות utility שהצלחתי לכתוב להם.
אשמח להחכים בנושא.
תודה מראש:)את אמורה לבדוק גם פונקציות כאלו, ולבודד מתוכן את כל החלקים החיצוניים. (כלומר לכתוב פונקציה חליפית שתחליף אותם ותדמה החזרה של המידע שאיתו את רוצה לבדוק)
בכל ספרית בדיקות יש אפשרות לעשות זאת, ברובי לפחות זה נקרא mocking. -
אם מהות הפונקציה היא התחברות ל-DB
ואני מבודדת את החלק הזה ועושה mocking
בעצם לא נשאר קוד אמיתי לבדוק
(אלא פונקציה דומה, שעושה פונקציונליות דומה, על נתונים לא אמיתיים) -
@ps אמר בUnit Tests:
אם מהות הפונקציה היא התחברות ל-DB
ואני מבודדת את החלק הזה ועושה mocking
בעצם לא נשאר קוד אמיתי לבדוק
(אלא פונקציה דומה, שעושה פונקציונליות דומה, על נתונים לא אמיתיים)אוקי, אז לא הבנתי אותך נכון. חשבתי שאת רוצה לבדוק פונקציה שמתבססת על קריאה לDB.
פונקציה כמו שאת מדברת עליה, לא בודקים בבדיקות unit test, אלא זה כבר השלב הבא של integration tests - בהם בודקים את כל החלק של התממשקות עם חלקים חיצוניים כמו DB, API וכולי.
(לא בכל מקום מקפידים עליהם, יש כאלו שמסתמכים בחלק הזה על בדיקות ידניות) -
מה קרה לפורום שנרדם...?
בנתיים נתקלתי בעוד חומר על בדיקות יחידה,
זה מה שקורה כשמתחילים ללמד, פתאום צריך לדעת את החומר מאוד יסודי..
https://github.com/ghsukumar/SFDC_Best_Practices/wiki/F.I.R.S.T-Principles-of-Unit-Testing -
@ps אמר בUnit Tests:
מה קרה לפורום שנרדם...?
בנתיים נתקלתי בעוד חומר על בדיקות יחידה,
זה מה שקורה כשמתחילים ללמד, פתאום צריך לדעת את החומר מאוד יסודי..
https://github.com/ghsukumar/SFDC_Best_Practices/wiki/F.I.R.S.T-Principles-of-Unit-Testingהפורום באמת רדום
אני לצערי לא פעילה בימים האחרונים כי הבן שלי מאושפז בבי"ח.
ברוך השם המצב משתפר וכולנו תפילה ותקווה שהוא ישתחרר בקרוב.אבל, כל השאר - איפה אתן? לכן אין תרוץ
-
אוי, רפואה שלמה במהרה!
מחכים לך כאן... -
אולי מישהי כאן תדע לעזור?
כפי שאמרתי אני מלמדת עכשיו קורס בבדיקות תוכנה במסלול הנדסאים
ואני רוצה לתרגל איתם Unit Test עם הכלי JUnit
אני מכירה מהעבודה בעיקר את Eclipse ו-IntelliJ, אבל בלימודים הם משתמשות ב-NetBeans, שאני בקושי השתמשתי ומכירה
בכל מקרה אני ממש לא מצליחה להריץ את הטסטים, פעלתי לפי כל ההוראות שמצאתי בגוגל, אבל עדיין הפקודה להרצת הטסטים לא מאופשרת אצלי...
מישהי נתקלה/מכירה?? -
אוף, אני ממש תקועה