TDD - סיפור ניצחון
כתבתי בדיקת אינטגרציה בין לוגיקה חדשה שכתבתי לבין מחלקה קיימת בשם DBLoader אשר אחראית על טעינה מ DB ובנייה של מבנה נתונים. DBLoader { public ProjectTree Load(ObjectIdentifier projectId,bool loadSubProjects); } DBLoader נכתב ונבדק לפני הרבה זמן. הלוגיקה החדשה נבדקה ע"י בדיקות יחידה. לכן מאוד התפלאתי כשהבדיקה נכשלה. גיליתי ע"י דיבוג ש DBLoader מחזיר לי תוצאה לא נכונה. אבל DBLoader כבר כתוב ובדוק הרבה זמן . מסתבר שלא היו בדיקות של פרויקטים שמכילים תתי פרויקטים ולכן loadSubProjects בכלל לא השפיע על ה flow של DBLoader בבדיקות. בדיקת האינטגרציה שכתבתי הייתה הלקוח הראשון בו loadSubProjects כן היה חלק מה flow. אז כתבתי בדיקה עם אותו תרחיש עבור DBLoader. הבדיקה נכשלה, פתרתי את הבאג, שתי הבדיקות עברו. הכל סבבה 😎 מאחר והבנתי ש DBLoader לא נבדק עם תרחישים רלוונטיים עבור הפרמטר loadSubProjects החלטתי לעבות את הבדיקות של DBLoader למרות שבדיקת האינטגרציה שלי כבר עברה. חיפשתי איזה בדיקות אני יכולה להוסיף , מאחר והקוד היה כבר כתוב ניסיתי להבין איפה הקוד יכול להישבר מקריא