Lesson 6 of 22

Summary Day 1

Duration: 8:45 Watch on YouTube (external link, opens in new tab) Spoken in Hebrew

Markdown version

In this lesson

Roy Osherove notes that by the end of the first day most participants were writing the test first and arguing about implementation, design and readability (external link, opens in new tab) rather than whether to test at all. He previews the second day: replacing the console earlier was a kind of mock object (external link, opens in new tab), the difference between a mock (which the test asserts against, one per test (external link, opens in new tab)) and a stub (external link, opens in new tab) (any number per test), and frameworks such as NSubstitute (external link, opens in new tab). He asks everyone to redo the string calculator exercise (external link, opens in new tab) from scratch for ten to fifteen minutes every morning so they do not forget what they learned.

Transcript

1,260 words

[00:04] (external link, opens in new tab) חסרים לי עוד אנשים >> לא נורא לא הרבה אוקיי שאלות על דברים שעשינו היום אוקיי אני אני מקווה שהתחלתם לשים לב שרוב הזמן כבר כתבתם את הטסט קודם וכבר לא היה אכפת לכם מישהו הרגיש את הנושא הזה שזה כבר לא משנה שכותבים את הטestט קודם שזה פשוט הדרך לכתוב את זה וזה כבר it's not a וזה מה שרציתי שתחילו קצת להרגיש שהמטרה של הטestטים זה ליצור פונקציונליות חדשה הטestטים אחרי זה נותנים רשת ביטחון ופתאום מגלים בעגים ואפשר לבד שלא שברת כלום אבל ה המוזרות הזאת שחשבים בהתחלה שתחילו את הטestן ולפעמים שוכחים זה משהו שבדרך כלל מתחיל לעבור ביום הראשון ביום השני אבל עדיין אתם בסך הכל עושים את זה אולי חמש שעות אולי ארבע וחצי שעות זה בסדר אם עדיין אתם חלקי חכם עדיין מרגישים לא בנוח עם הדבר הזה אבל אני שמתי לב שלקראת הסוף עיקר הדיבורים היו דווקא על סוגי מימוש ועל הדיזיין שנוצר מהדברים האלה ועלביליטי

[01:04] (external link, opens in new tab) והרבה פחות על כדאי לי לבדוק את זה או לא כדאי לי לבדוק את זה כבר היה על דברים הרבה יותר ממשיים כמו איך כדאי לי לבדוק את זה שווה לי לכתוב את הסרט ככה איך הטestט יותר קרי או פחות קרי ובכלל אם יש איזה או איך לעשות ריפאקטורים לקוד וזה סוג הדיונים שמאוד חשוב שיהיה וזה סוג הדיונים דרך אגב שאני מאוד מקווה שיהיה לכם גם בהמשך הנושא של הקוד במהלך הלימוד של הטestטים מאוד מאוד חשוב כי הרדבילי זה אחד הדברים שנורא נורא קל לשכוח ממנו אז אפילו טestטים שאפשר לעשות אותם יותר פשוטים כ אינפוטים יותר פשוטים זה דבר מאוד חשוב

[01:43] (external link, opens in new tab) ופלק ממכם שמו לב שגם אני קצת התפרעתי עליכם מבחינת זה שיש שיש קוד שפשוט לא הייתי מוכן לקבל מבחינת הקריאות שלו וזה חשוב מאוד כי יש איזשהו סוג של מקצוענות שאתם שאתם אומרים על עצמכם אם אתם מתחילים לכתוב בוניטest המקצוע הזאת אומרת לא רק שהקוד שלי עובד אלא אני גם מנסה לעשות אותו קרי ככל האפשר קרי ללא פחות ממה שהטestטים שלי קריאים זה שהטestטים שלי קריאים זה יפה אבל אם הטestטים שלי יש לי 20 טestטים ויש לי פונקציה מפה מהתקרה ועד לרצוה בפונקציה אחת משהו לא בסדר

[02:17] (external link, opens in new tab) אוקיי זה מאוד מאוד חשוב כי יש לנו איזשהי איזשהו דגש עלמטיity ככל שהפונקציה יותר ארוכה המטבabity של הסוב וזה משהו משהו שגם לשים דגש אליו בימים הבאים. ביום רביעי אנחנו ניכנס לעולם קצת יותר מורכב שאולי ראיתם אותו קצת בקונסול שניסינו לעשות. מה קורה כשיש לי כשאני אנסה לשלוט בדפטי? פאטי במקרה הזה היה קונסול ואפילו במקרה הזה הקונסול נתן לנו API כדי לשלוט בו.

[02:47] (external link, opens in new tab) הוא נתן לנו API כדי להחליף אותו ועדיין זה לא הרגיש ממש נוח. אז אנחנו נדבר על עוד הרבה שיטות איך להחליף דברים כדי שתהיה לנו שיטה עליהם. בעצם כשהחלפנו את הקונסול out עשינו ובדקנו את הסטרינ מה שיצרנו היה סוג של more objects mo objectה שנראה כמו הדבר האמיתי אבל הוא עוזר לנו להחליט אם הטest עבר או לא משהו שהוא פייק (external link, opens in new tab) אבל אנחנו עושים עליו אסרט ולתצורך העניין יש עוד דבר שהוא פיק שנקרא stub (external link, opens in new tab) ההבדל בין mor objects לstubs זה שטבס נראים בדיוק כמו מobטקס אבל אנחנו לא עושים עליהם הם מחליפים משהו כדי שנוכל לבדוק משהו אחר אז אז בכל מקרה שיש לכם איזשהו אובייקט שהוא פייק שהוא נראה כמו משהו אחר אז הדרך לדעת אם זה מוקט או סטב זה פשוט להסתכל על הסרטים ולהגיד אם אני עושה עליו אם כן זה מobט אם לא זה סטאב (external link, opens in new tab) למה חשוב לנו לדעת את ההבדל ביניהם כי בדרך כלל בטestטים

[03:44] (external link, opens in new tab) אנחנו לא רוצים שיהיה לנו יותר ממוק (external link, opens in new tab) object אחד יכולים להיות לנו הרבה סאבים אבל מ object אחד היותר כי mor object זה בעצם על קריאה לרד פטי זה resultלט ובדרך כלל אנחנו לא רוצים לבדוק יותר מדבר אחד בטestטים. מישהו זוכר למה? למה? >> כן. יכול להיות שאחד נחשב ואחד הצליח ואז אתה לא יודע מהפק. >> בדיוק. אז אם יש לי שני מוק object בטest והאינטראקציה עם הראשון נכשלה, אני אף פעם לא אדע מה קרה עם השני. ולכן מוק objects אני חל מחפש רק אחד הטestטים.

[04:15] (external link, opens in new tab) וזה חשוב מאוד לקוד להבין שיש לי הרבה פייקים, אבל רק אחד מהם צריך להיות כמו פרובקט. בכל השאר הם סטבים וזה ה זה הטרמינולוגיה בגדול. יש קונספט כזה ואנחנו נעבור עליו עוד פעם ביום רביעי אל תדאגו אתה בטלוויזיה הזאת אבל תמשיך לקרות פעם אז ביום רביעי תתכוננו ליום טיפ טיפה יותר מסובך מבחינת הפאטרנים היום היה יחסית רגוע הכל ככה הלך בכיף וזה בסדר יום רביעי יהיה קצת דייבים והרבה אנשים אומרים בדרך כלל שביום ביום השני לקורס יש איזשהיא עלייה בדרגה של ה

[04:49] (external link, opens in new tab) של המורכבות אבל ביום ביום השלישי של הקורס תבינו שזה לא היה עלייה כזה גדולה ביום השני. אוקיי? כי היום השלישי אנחנו ניכנס ללגסיק. שם באמת המעורבות נהיית מאוד מאוד מסובכת. אבל הטכניקות שאנחנו ביום השני של ריפאקטורים גם בקוד קיים יעזרו לנו מאוד ביום השלישי. אנחנו גם נסתכל על פרימוקים כמוסיקי

[05:22] (external link, opens in new tab) די אין סבסיטוט וגם ביום ביום האחרון למישהו אומרים יצא לעבוד עם משהו חוץ מרנו עם מה >> מוק וההפוnet אוקיי בג'אה זה משהו ש קצת ישן והוא ואנחנו לא לא נסתכל עליו היה גם לדוט אבל הוא נפטר מסיירה טובה. אף אחד לא מתפקד עובדית יותר וגם שלו היה די נורא. אה אחד הדברים היפים זה שבדוטנט הרבה מהפרמוקים והרבה מההתקדמות בדוטנט היא הרבה יותר מהירה בג'אבה בעולם היוטיסים היום.

[05:57] (external link, opens in new tab) היא יותר מהירה מאשר בג'אבה. פעם ג'אוה היה לה עבר מאוד עשיר של יוניטestינג. זה היה כאן בכל הכלים. היום בטניט הייתה התקדמות ממש ממש מהירה עד כדי מצב שהיום ג'אה והמתכנית ג'אבה לוקחים המון קונספטים שיש ב-NUnit כמו אטריבטס וכולי ושמים אותם ב-JUnit וזה משהו שנורא כיף לחשוב לו כי הרבה פעמים בעולם הדוטנט אנחנו קצת עוקבים אחרי העולם שמסביבנו אז תחשבו על דנט וג'אה אז אז יש גם את עולם הרובי וגם שם הנושא של unit testting הוא מאוד מאוד חזק אבל גם שםש testing בעיקר unit testing (external link, opens in new tab) עדיין לא נכנס כל כך.

[06:36] (external link, opens in new tab) Testing הולך חבל על הזמן. אז אנחנו גם נדבר קצת על הפנס of האלה ביום השלישי. אם יש למישהו דברים או שאלות או כל דבר שהוא רוצה לשאול אותי בצורה אסינכרונית אז האימייל שלי כי אנחנו ניפגש רק ביום רביעי. האימייל שזה רואה את אושרדו. אז אתם מוזמנים לשלוח לי אימייל ופשוט לשאול שאלה. להגיד תגידו שאתם קורס כי אני לא אזכור A זה אני סלב ואני אזכור איזה חברהסט

[07:08] (external link, opens in new tab) >> מי שלא זוכר את מה שכתוב שם לי יש את האימייל שלו לא זוכר מי זה סלב לא >> כולנו צים להדפיק מי זה סלב >> אבל אבל אני לא יודע איך להגיד לך את זה בכל חברה מצליחה יש איזה סלב אחד שהוא שכותב את כל הקוד הטובת איזה לא זה לאחבר >> רציתי להחמיא לך אבל אתה פשוט זכית אותי >> בסדר זו דחה גם אתה סליחה באתי קודם >> הרחבת אחים טוב בסדר אתה גם אמרת לי קודם שהב שלי באתר לא משהו אז בסדר לא שכוער לא אמרתי שהוא לא משהו

[07:46] (external link, opens in new tab) אולי ניפגש ביום רביעי ואולי לא נראה חבר'ה תודה רבה אני מקווה שנהנתם ביום רביעי אנחנו נחזור עלי הדבר הזה אני ממליץ כל בוקר אחר ממחר אתם באים לפה קחו 10 דקות חו רבע שעה תשבו מור למחשב שלכם תלכו על הסטרים קלטור תנסו להתחיל אותו מהתחלה תראו לאן אתם מגיעים ברבע שעה בחצי שעה המטרה היא שתוכלו לסיים את כל התאטה בחצי שעה אבל כולל כל הריפקטורים כולל כל הדברים תראו מה המהירות שלכם בעבודה לבד תנסו וגם זה חשוב מאוד כי זה יזכיר לכם את ה זה מאוד חשוב המסל ממורי בטיפ דין מאוד חשוב אם אתם לא תתרגלו את זה כל בוקר לבחות בשבועיים הקרובים יום אנחנו אתם תשכחו הרבה ממה שלמדתם היום אז קחו 10 דקות כל בוקר תנסו לעשות את הדבר הזה.

[08:32] (external link, opens in new tab) בסדר? שאלות טוב לדרו שניה