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

 

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

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

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

מצד ימין מלמעלה יש לנו שני כפתורים 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 :

 

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

 

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

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

 

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

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

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

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

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

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

 

כתיבת טסט ב-NUnit

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

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

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

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

 

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

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

namespace NunitTest
{
    [TestFixture]
    public class TestClass
    {
        private IWebDriver driver;

        [TestFixtureSetUp]
        public void LoadDriver()
        {
            ChromeOptions options = new ChromeOptions();
            options.AddArgument("--start-maximized");
            options.AddExcludedArgument("ignore-certificate-errors");
            driver = new ChromeDriver(@"C:\Selenium\", options);
            driver.Navigate().GoToUrl("https://atidcollege.co.il/Xamples/bmi");
            driver.Manage().Timeouts().ImplicitlyWait(TimeSpan.FromSeconds(20));
            Console.WriteLine("SetUp Finished Successfully");
        }

        [TestFixtureTearDown]
        public void UnloadDriver()
        {
            driver.Quit();
            Console.WriteLine("TearDown Finished Successfully");
        }

        [Test]
        public void Test1()
        {
            driver.FindElement(By.Id("weight")).SendKeys("60");
            driver.FindElement(By.Name("height")).SendKeys("200");
            driver.FindElement(By.Id("calculate_data")).Click();
            String ActualResult = driver.FindElement(By.Id("bmi_result")).GetAttribute("value");
            Assert.AreEqual("15", ActualResult);            
        }
    }
}

 

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

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

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

 

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

 

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

Assert.AreEqual("16", ActualResult);

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

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

 

השאר הערה\הודעה