שיעור 12: בדיקות, mocks ו־seams
כשהלוגיקה קוראת ישירות לשעון, למייל או למסד הנתונים — כל בדיקה תלויה בעולם האמיתי: איטית, שברירית, ולפעמים נכשלת רק בחצות. בשיעור הזה נפתח seam: ממשק קטן שדרכו מזריקים תחליף (fake), ומקבלים בדיקות שרצות מהר ותמיד נותנות אותה תוצאה.
seam הוא כמו שקע חשמל בקיר: אפשר לחבר אליו מכשיר אמיתי או מכשיר בדיקה — והקיר עצמו לא משתנה.
- תכנון שניתן לבדיקה (seams ו־mocks)
- מסתירים תלויות אמיתיות מאחורי ממשקים קטנים, כך שבדיקות יכולות להזריק תחליפים ולשלוט בכל קלט.
- seam — תפר להחלפת תלות
- מקום בקוד שבו אפשר להחליף התנהגות מבחוץ — למשל פרמטר בנאי מטיפוס ממשק — בלי לערוך את הלוגיקה.
- fake — מימוש מזויף לבדיקות
- מימוש ידני של ממשק (כמו FakeClock) שהבדיקה שולטת בהתנהגותו לגמרי — וכך התוצאות דטרמיניסטיות.