NUnit
צילום מסך של ממשק Nunit 2.4.6 בסביבת חלונות . | |
מפתח | קוד פתוח |
---|---|
גרסה אחרונה | 2.6.2 (22 באוקטובר 2012) |
מערכת הפעלה | Net Mono. |
סוג רישיון | BSD-style (modified zlib license) |
קטגוריה | בדיקות תוכנה |
http://www.nunit.org |
NUnit הוא כלי פיתוח חופשי לבדיקות יחידה בשפת התכנות Net. מטרתו דומה לזה של JUnit בתיכנות ב- Java. וגם הוא אחד מרבים השייכים ל משפחת xUnit.
דוגמה לבדיקת יחידה
על מנת להריץ את הבדיקה יש ליצור תחילה מחלקה חדשה שבה נבצע את הבדיקות, בתוך מחלקה אחת ניתן לבצע בדיקות למספר מחלקות. בנוסף יש להוסיף את ה- dll של NUnit לפרויקט. הדוגמה הבאה מציגה דוגמה פשוטה בשפת C#. מטרת הבדיקה היא לבדוק נכונות של ביטוי אריתמטי פשוט.
using NUnit.Framework;
[TestFixture]
public class ExampleTestOfNUnit
{
[Test]
public void TestMultiplication()
{
Assert.AreEqual(4, 2*2, "Multiplication");
// Equivalently, since version 2.4 NUnit offers a new and
// more intuitive assertion syntax based on constraint objects
// [http://www.nunit.org/index.php?p=constraintModel&r=2.4.7]:
Assert.That(2*2, Is.EqualTo(4), "Multiplication constraint-based");
}
}
שיטות ביאור
משמעות | מטרה | פונקציית ביאור |
מחלקה שהיא בדיקת יחידה למחלקה אחרת | מחלקה | TestFixture |
פונקציה שתרוץ לפני כל בדיקה | פונקציה | SetUp |
פונקציה שתרוץ לאחר כל בדיקה | פונקציה | TearDown |
מסמן פונקציה כפונקציית בדיקה | פונקציה | Test |
מסמל שצריכה להתקבל שגיאה על ידי הבדיקה | פונקציית בדיקה | ExpectedException |
מסמל שבדיקה צריכה לרוץ אבל לא מתחשב שהבדיקה נכשלה | פונקציית בדיקה | Ignore |
פונקציה זו מתבצעת פעם אחת, לפני תחילת כל הבדיקות. | פונקציה | TestFixtureSetUp |
פונקציה זו מתבצעת פעם אחת, לאחר שכל הבדיקות הסתיימו. | פונקציה | TestFixtureTearDown |
בדיקה אם הפונקציה עברה את הבדיקה
על מנת לבדוק אם התוצאות שקיבלנו בפונקציית הבדיקה תואמות את התוצאות שציפינו לקבל נשתמש במחלקת assert זוהי מחלקה סטטית הקובעת את תוצאת הבדיקה על ידי השוואה של תוצאת הפונקציה לתוצאה הרצויה. המחלקה קיימת גם בJUnit וגם בNUnit, השוני הוא בצורת הכתיבה מאפשר לאמת את הקוד:
- על ידי בדיקת ביטויים בוליאנים.
- על ידי השוואת סוגים בסיסיים.
- על ידי השוואת משתנים (by reference).
- על ידי השוואת מערכים (by reference).
סוגים של Assert שניתנים לשימוש:
- Assert.AreEqual(Type expected, Type actual);
- Assert.AreEqual(Type expected, Type actual, Type delta);
- Assert.AreEqual(Type expected, Type actual, string message);
- Assert.AreEqual(Type expected, Type actual, Type delta, string message);
- Assert.IsFalse(bool condition);
- Assert.IsFalse(bool condition, string message);
- Assert.IsNotNull(object object);
- Assert.IsNotNull(object object, string message);
- Assert.AreNotSame(object expected, object actual);
- Assert.AreNotSame(object expected, object actual, string message);
- Assert.IsNull(object object);
- Assert.IsNull(object object, string message);
- Assert.AreSame(object expected, object actual);
- Assert.AreSame(object expected, object actual, string message);
- Assert.IsTrue(bool condition);
- Assert.IsTrue(bool condition, string message);
- Assert.Fail();
- Assert.Fail(string message);
אופן הרצת הבדיקות
הרצת הבדיקות בNUnit מתבצעת על ידי תוכנה חיצונית שמותקנת במחשב. במידת הצורך ניתן להוסיף תוספים לויז'ואל סטודיו שמאפשרים את הרצת הבדיקות ללא תוכנה חיצונית.
השוואה בין JUnit ל NUnit
NUnit הינה שיטת בדיקה הדומה ל JUnit השוני העיקרי בהם הוא שפת הפיתוח שבה משתמשים עם זאת קיימים עוד כמה הבדלים מיזערים ביניהם מבחינת תחביר ואופן הרצת הבדיקות.
מאפיין | NUnit | JUnit |
שפת פיתוח | C# | Java |
מערכת הפעלה | Net, Mono | רב פלטפורמי |
תחילת שימוש | שימוש חיצוני- בפעם הראשונה דורש התקנה של .Nunit וכל פעם יש צורך בהוספת קובץ dll לפרויקט | שימוש פנימי –על ידי הוספת jar של Junit לפרויקט |
יצירת test class | יצירת מחלקת בדיקות באופן ידני. אין תלות במחלקה ספציפית | יצירת מחלקת בדיקות באופן אוטומטי על ידי Junit Test Case |
הרצת הבדיקות | דרך תוכנה חיצונית של Nunit (ניתן להריץ מתוך Visual studio על ידי התקנת תוספים) | מתוך eclipse על ידי run As JunitTest |
סימון פונקציות בדיקה | לפני הפונקציה תגים מותאמים | שם הפונקציה מתחילה במילה test |
Assertion class | יש לקרוא לפונקציית Assert באמצעות פונקציה סטטית | קריאה לפונקציית Assert ישירות |
פונקציות ביאור Annotations | לפני הפונקציה נגדיר את סוג הפונקציה על ידי [ ] | לפני הפונקציה נגדיר את סוג הפונקציה על ידי @ |
לקריאה נוספת
- Andrew Hunt, David Thomas: Pragmatic Unit Testing in C# with NUnit, 2nd Ed. The Pragmatic Bookshelf, Raleigh 2007, מסת"ב 0-9776166-7-3
- Jim Newkirk, Alexei Vorontsov: Test-Driven Development in Microsoft .NET. Microsoft Press, Redmond 2004, מסת"ב 0-7356-1948-4
- Bill Hamilton: NUnit Pocket Reference. O'Reilly, Cambridge 2004, מסת"ב 0-596-00739-6
- How .NET’s Custom Attributes Affect Design