התלמוד של המפתחהתלמוד של המפתח

מסכת בדיקות

Integration Tests

5 הלכות

א

ה-integration test בודק שהחלקים עובדים ביחד — לא כל חלק בפני עצמו. מי שכתב רק unit tests — בדק את האצבעות, לא את היד.

שכן כל unit יכול לעבוד לבדו, ויחד — להיות שבורים. ודרשו חכמים: unit test מוכיח שהחלקים נכונים, integration test מוכיח שהם מדברים זה עם זה.

ב

ב-integration test מותר וצריך לגשת לבסיס נתונים אמיתי — בסביבת test בלבד. הממיר ל-mock — עוקר את מהות הבדיקה.

שכן mock של DB אינו DB. הוא אינו מוכיח שה-query נכון, שה-index קיים, שה-transaction עובד. ואמרו חכמים: test DB נפרד — חובה. DB ייצור — חילול.

ג

integration tests הם איטיים — וזה מקובל. אל תזרז אותם על חשבון נכונותם.

unit test מהיר, integration test יסודי. לכל אחד תפקידו. המנסה לעשות integration test מהיר כמו unit test — ירפא את הסימפטום ויפגע במחלה.

ד

כישלון integration test חמור יותר מכישלון unit test. הוא מצביע על שבר בין החלקים — ואת זה אין unit test יכול לגלות.

ודרשו חכמים: unit test אומר "החלק תקין". integration test אומר "המכונה עובדת". ואם המכונה שבורה — לא מנחמנו שהחלקים תקינים.

ה

יש לנקות את בסיס הנתונים לפני כל integration test. בדיקה שמסתמכת על נתוני בדיקה קודמת — בחזקת בדיקה לא אמינה.

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