Lesson 20 of 22

Legacy BlogEngine Project Overview

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

Markdown version

In this lesson

Roy Osherove introduces the legacy project (external link, opens in new tab) for the third day, the BlogEngine.NET blog engine, which has no unit tests (external link, opens in new tab) but has integration and acceptance tests (external link, opens in new tab). Some are written with WatiN, which is based on Ruby's Watir and works mainly with Internet Explorer, and others in a framework whose tests are written in Razor pages that run in the browser; of 20 tests, five fail. The exercise is to understand why and make all the tests pass, get to know the code and its dependencies, and try writing a new test before refactoring (external link, opens in new tab).

Transcript

916 words

[00:07] (external link, opens in new tab) BlogEngine.NET הוא מנוע של בלוגים שמאפשר לנו לעשות כל מיני דברים, כולל לכתוב ולוג, קומנטים, טקבק, פינבק וכל מיני דברים מעניינים אחרים. אנחנו הולכים לעשות לכתוב לו טestטים. עכשיו הפרויקט הזה מעניין מכמה בחינות. א' יש בו המון, אין לו בכלל unit testing (external link, opens in new tab), אבל ב' יש לו כמה integraation test אוceptance test מאוד נחמדים. בעצם אם אני לוקח את הפרויקט אני עושה לו קונטרול F5 כדי להריץ אותו ואז אני עושה קליק ימני run test

[00:39] (external link, opens in new tab) יש לי פרויקט של testing שמריץ לי את הal את הארט exporer ובעצם מפעיל כל מיני פונקציות בceptance test האcest פה כתובים בכמה frameworים אחד הפרamewורקים שזה כתוב בהם זה אם אתם מכירים זה web application testing in.net אז מרוסס על פרויקט ברובי שנקרא Watir או Watir שזה web application testing in ru

[01:13] (external link, opens in new tab) הפרw הזה בעיקר מכיר אתנט expפור ו יש פה עוד כמה פיצ'רים נחמדים א' הטestטים וואו כתובים בnitט אז טן in זה סתם פריימורק שמשתמשים בו איך אני אראה לכם את הטestטים פה בעצם הטestטים רצים בזמן שאני מדבר תשימו לב כמה זמן לוקח להם לרוץ אבל יש פה עוד טים בעוד פרימוק שנאק קישות או קיחות קישות שזה פרימוק שנכתב על ידי בחור בשם rקרי עוד איזה altגי

[01:47] (external link, opens in new tab) שעבר לרובי ואז חזרה לדוטנט ולקח כמה רעיונות משם וממשימש אותם בדוטנט ובין השר מה שהוא מימש זה framewורק שנקרא קוט שזה מאפשר לך לרשום testive ברזור שזה השפת templליטנing של שאפשר לכתוב ב-ASP.NET ‏viw ומאפשרים לך לעשות אסרטים שנראים קצת כמוספקים משהו צריך להראות כמו משהו אחר להריץ את הטestטים כביכול בפרודקשן אפשר להריץ את הטestטים האלה גם בפרודקש אז פה אתם רואים בינתיים הטestטים רצים

[02:19] (external link, opens in new tab) בודקים את הפינס שאפשר לעלות comמנטים כל מיני דברים כאלה לעשות לogגן אם אני אעשה פה בינתיים view outpט כל הטestטים האלה רצים עם TestDriven.NET זאת אומרת זה כתוב ב-NUnit אתם רואים שהטestטים רצים בינתיים דיברתי ובעברו איזה כמה דקות סך הכל את כמות הטestטים שרצה פה זה 15 טestטים אבל כל טestט מורכב מהרבה דברים הטestטים עצמם

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

[03:28] (external link, opens in new tab) כן נכון אני אסגור את זה זה לא מתחת לאדמין זה לא מתחת לוין זה מתחת את הטestטים האלה זה בעצם בספרי הטestס כאשר הטestטים כתובים בריזור כל הטestטים של הCHML הם טestטים שבעצם גם הטestטים שלIT של מבקשים מוטין ללכת לדפים האלה ולהריץ את הטestטים שכתובים פה טוב יש פה איזשהי בעיה עם הסנטeקס הייט אבל בגדול זה rיזור כאשר הסנטקס של הטest פה נראה ככה

[04:01] (external link, opens in new tab) Following שימו לב avatar test ואת השם של האly לא חייבים את השם שלא רוצים ואז יש it should כן it should שזה בעצם המילה שבה משמשים בדרך כלל ואז יש פה איזשהו סטרינ שזה בעצם בא מעולם הרובי שימוש בסטרינג ככה ואז יש לנו בעצם איזשהו למדה כי צריך להחזיר פה איזשהו

[04:31] (external link, opens in new tab) משתנה מסוגד delegate ופה כתוב ממש test תפתח את הlog settings instance avatar get avatar image return שמשהו true force שזה מתחיל בככה וזה ends with ככה ואז תשימו לב שבסוף יש עוד משהו מאוד מעניין

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

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

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

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

[07:12] (external link, opens in new tab) שאתם צריכים להשתמש בו נמצא פה pitl. Labacy legגy doc יש פה האפרק casס משנה אחרת ביטלי לא עובד תשימו לב אז זה פשוט casי סטנדרטי. אז מה שאנחנו נעשה עד ארוחת הצהריים זה את החלק הראשון של הדוקיומנט הזה. בסדר? כתוב לכם שם איפה עוצרים לצהריים. כתבתי במיוחד שלא תעשו יותר מדי חס וחלילה. זה להבין את הפרויקט הזה קצת להיכנס אליו, להכיר את הקוד שלו, להבין את הדפendנenנy שלו, לגרום לכל הטestטים לעבור ואפילו לנסות לכתוב טest חדש,

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