TDD ספונטני #1

סקרינקאסט ספונטני לגמרי – עבודה על פרוייקט Open source.
בסקרינקאסט אני מתחיל להוסיף מערכת של Plugins שבעצם תקרא ל-Callbacks, כמו ActiveRecord ו-.Observers.

אני מדבר תוך כדי על מה אני "בודק" ומה אני "מתכנן".

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

תהנו, וכרגיל, אשמח לתגובות

10 thoughts on “TDD ספונטני #1

  1. היית צריך לקרוא לזה: "איך אני ממש פיצ'ר שנשמע ממש מסובך בקלות ב-15 דקות". :-)
    להבא בבקשה עוצמת סאונד יותר גבוהה וקצת יותר ארוך.

  2. היי אבי,
    כאשר אתה עושה TDD, אתה קודם כותב בדיקה ולאחר מכן ממש את הקוד שיגרום אך ורק לבדיקה הזאת לפעול ולא ראיתי שפעלתה ככה.

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

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

    האם עשיתה זאת כדי לחסוך זמן בשביל הסקרינקאסט או שזוהי דרך העבודה שלך?

  3. @יוסי
    למרות שאתה צודק בגדול, באיזשהו שלב אתה לא עושה ובודק לאחר כל טסט פשוט ובסיסי (במיוחד בתחילתו של פיצר חדש), אלא רק את המסובכים יותר

  4. @יוסי
    היי יוסי

    הממ… צפיתי בקטע שוב.
    כן, אם הייתי רוצה לעשות את זה לפי הספר, הייתי צריך לעשות את זה כך
    *אבל* קודם כתבתי את הטסט של הadd_plugin(Dummy) ואח"כ את הטסט הקודם, ולכן ראית את ה @@plugins שם.

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

  5. היי אבי,
    מצוין כרגיל

    תודה.

    נ.ב., איך אתה משתמש ב – sublime להריץ את הטסטים?

  6. אחלה של סקרין קאסט אבי, האיכות וידאו הפעם הייתה פשוט מעולה.
    בכל מקרה זה עזר לי יותר לתפוס את הקונספט של TDD אז תודה :)

כתיבת תגובה

האימייל לא יוצג באתר. (*) שדות חובה מסומנים

*

תגי HTML מותרים: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>