Selenium – C# / NUnit, 2

בחלקו הראשון של המדריך, הורדנו והתקנו את ה-Visual Studio , הורדנו והתקנו את NUnit , כעת נראה כיצד אנו מתקדמים עם הבדיקות

 

nunit

הכרת ה-NUnit , מודול ה-GUI

אז דבר ראשון שנראה כשנפתח את קובץ ההפעלה של NUnit יהיה המסך הבא:

NUnit06

בחלון השמאלי (עם הרקע הלבן) אנו אמורים לראות את הטסטים שאנו ניצור בקוד.

מצד ימין מלמעלה יש לנו שני כפתורים Run / Stop , להריץ או לסיים ריצה של טסט , השורה הבודדת תחת הכפתורים תראה לנו את מצב הריצה לאחר סיומה (קו ירוק או אדום)

החלון הימני התחתון מחולק לשלושה טאבים, טאב ה-Text Output הוא למעשה ה-Console שלנו , כך שאם נקודד את השורה Console.WriteLine הטקסט יוצג כאן. הטאב Tests Not Run די מסביר את עצמו לפי השם , והטאב Errors and Failures גם כן מתחלק לשניים, שם נוכל לנתח את מקור הנפילה במידה ותהיה כזאת (נראה זאת בהמשך)

בשביל לשייך את הפרוייקט שלנו לאפליקציה , נקיש על File -> Open Project ובחלון ה-Browse שייפתח לנו , ננווט למיקום הפרוייקט שלנו ונבחר את קובץ ה-DLL שיווצר לנו לאחר הקימפול הראשון , בדרך כלל ה-DLL ישב תחת Project Folder\bin\Debug , בשלב זה עדיין לא כתבנו שורת קוד אחת בפרוייקט אז אין לנו כרגע קובץ DLL לטעון. נעשה זאת בהמשך.

 

הכרת ה-NUnit , מודול הספריה

לפני שנלמד כיצד לעבוד עם ספריית ה-NUnit , בואו קודם נשייך אותה לפרוייקט שלנו, אז תחת הפרוייקט נקליק על המקש הימני של העכבר על Preferences ונבחר את האופציה הראשונה – Add Reference :

NUnit08

 

בחלון הבא נקיש על Browse

NUnit09

 

וננווט דרך מנהל הקבצים אל המיקום בו התקנו את ה-Nunit , שם, תחת ספריית bin\framework קיים קובץ nunit.framework.dll , נבחר אותו.

NUnit10

כעת הקבצים המשוייכים לפרוייקט הם קבצי הסלניום שהורדנו בסעיף השני (חלק א) וקובץ ה-NUnit:

NUnit15

 

ה-Nunit , כמו ה-JUnit שתומכת באנוטציות, תומכת גם כן בחלוקת הקוד למקטעי בדיקה , החלוקה הזאת נעשית בעזרת Attributes , לסביבה יש כמה Attributes שונים עליהם ניתן ללמוד בהרחבה בדוקומנטציה של הפרוייקט.

בכל מקרה , ה-Attributes החשובים לנו בטסטים הם:

[TestFixture] – בא לפני הצהרת המחלקה ומודיע לקומפיילר כי מחלקה זו היא מסוג Unit Testing

[TestFixtureSetUp] – מודיע לקומפיילר להריץ את הפונקציה הזאת תחילה , מקביל ל-beforeClass@

[TestFixtureTearDown] – מודיע לקומפיילר להריץ את הפונקציה הזאת בסיום , מקביל ל-afterClass@

[Test] – מודיע לקומפיילר כי זהו טסט בר הרצה , אותו נראה אח”כ ברשימת הטסטים ב-GUI של NUnit

 

כתיבת טסט ב-NUnit

נכתוב כעת מקרה בדיקה עם NUnit בסלניום, המקרה עצמו די פשוט , נכנס לאתר: http://yoniflenner.net/bmi (שהצגתי כבר בכמה הזדמנויות בפוסטים שלי) , נכניס משקל , גובה , נלחץ על Calculate ונבדוק כי התוצאה המתקבלת הינה התוצאה שקיוונו לה.

אז תחילה ניצור רפרנס לספריות שלנו בפרוייקט, מדובר על ספריות הסלניום וה-NUnit:

using NUnit.Framework;
using OpenQA.Selenium;
using OpenQA.Selenium.Chrome;

ונכתוב את ה-Attributes שלנו , כך:

NUnit16

 

ונכתוב את הטסט ב- #C:

 

כעת נקמפל את הפרוייקט שלנו : נקיש על BUILD -> Rebuild

ונעבור בחזרה אל אפליקציית ה-NUnit . באפליקציה נקיש על File -> Open Project , ונבחר את ה-DLL החדש שנוצר לנו עם קימפול הקוד , ישב לנו תחת ספרית הפרוייקט תחת bin\Debug.

כעת רשימת הטסטים אמורה לכלול את הטסט שאנו זה עתה קימפלנו:

NUnit17

 

נריץ את הטסט (כפתור ה-Run) ונראה את דפדפן הכרום נפתח ומתחיל “לעבוד”. בסיום הטסט אנו אמורים לקבל חיווי מה-NUnit על מצב הריצה , במקרה שלנו הריצה אמורה לעבור בהצלחה וזה מה שנראה על מסך:

NUnit18

 

כעת בואו ננסה להכשיל את הטסט , על ידי זה שנשנה את פקודת ה-Assert , כך שההשוואה תיפול , ב-Expected נרשום את הערך “16” במקום “15”

Assert.AreEqual(“16″, ActualResult);

נריץ שוב ונראה את התוצאה:

NUnit19

ה-NUnit דואג להראות לנו בדיוק באיזו שורת קוד הטסט נפל וגם על מה הוא נפל