Menu
CoddyTech

בדיקות יחידה (NUnit/xUnit)

חלק מהיחידה תכנות מונחה עצמים במסלול ה-C# של Coddy. שיעור 67 מתוך 70.

challenge icon

אתגר

קל

בואו נשלים את פרויקט מערכת הספרייה שלך על ידי הוספת בדיקות יחידה! בדיקות חיוניות כדי לוודא שהקוד שלך פועל כראוי וממשיך לפעול כשאתה מבצע שינויים. תיצור קובץ בדיקות ייעודי שיוודא את הפונקציונליות המרכזית של מערכת הספרייה שלך.

תמשיך לעבוד עם מבנה הפרויקט הקיים שלך ותוסיף קובץ בדיקות חדש:

  • Book.cs: השאר את המחלקה Book שלך עם Id, Title, Author, IsAvailable ועם המתודות Borrow() ו-Return().
  • User.cs: השאר את המחלקה User שלך עם מעקב אחר השאלות, הקבוע MaxBooks, המתודה CanBorrow() ומתודות לניהול הספרים שהושאלו.
  • Library.cs: השאר את המחלקה Library שלך עם לוגיקת ההשאלה, מתודות החיפוש והמתודות GetAllBooks() ו-GetAllUsers().
  • LibraryTests.cs: זהו קובץ הבדיקות החדש שלך! צור מחלקת בדיקות שתוודא שמערכת הספרייה שלך פועלת כראוי. תכתוב מתודות בדיקה שבודקות תרחישים שונים ומדווחות אם כל בדיקה הצליחה או נכשלה.
  • Program.cs: נקודת הכניסה שלך, שמריצה את הבדיקות ומציגה את התוצאות.

מחלקת הבדיקות שלך צריכה לכלול מתודות שבודקות את התרחישים הבאים:

  • TestBookBorrow - ודא שהשאלה של ספר זמין מצליחה ומשנה את הזמינות שלו
  • TestBookBorrowUnavailable - ודא שהשאלה של ספר שכבר הושאל נכשלת כראוי
  • TestUserBorrowingLimit - ודא שמשתמשים אינם יכולים לשאול יותר מ-3 ספרים
  • TestBookReturn - ודא שהחזרת ספר שהושאל פועלת כראוי
  • TestSearchByAuthor - ודא שחיפוש לפי מחבר מחזיר את הספרים המתאימים

כל מתודת בדיקה צריכה להחזיר ערך בוליאני שמציין אם הבדיקה הצליחה. צור מריץ בדיקות פשוט שמריץ את כל הבדיקות ומדפיס את התוצאות.

תקבל את הקלט הבא:

  • מספר תרחישי הבדיקה להרצה (1-5, בהתאם לבדיקות המפורטות למעלה)

עבור כל בדיקה שמורצת, הדפס את התוצאה בפורמט:

{TestName}: {PASS|FAIL}

לאחר שכל הבדיקות יסתיימו, הדפס סיכום:

--- Test Summary ---
Passed: {count}
Failed: {count}
Total: {count}

לדוגמה, אם הקלט הוא:

3

הפלט צריך להיות:

TestBookBorrow: PASS
TestBookBorrowUnavailable: PASS
TestUserBorrowingLimit: PASS
--- Test Summary ---
Passed: 3
Failed: 0
Total: 3

דוגמה נוספת עם כל 5 הבדיקות:

5

הפלט צריך להיות:

TestBookBorrow: PASS
TestBookBorrowUnavailable: PASS
TestUserBorrowingLimit: PASS
TestBookReturn: PASS
TestSearchByAuthor: PASS
--- Test Summary ---
Passed: 5
Failed: 0
Total: 5

הבדיקות שלך צריכות ליצור מופעים חדשים של Book, User ו-Library עבור כל בדיקה כדי להבטיח בידוד. כך המצב של בדיקה אחת לא ישפיע על בדיקה אחרת. חשוב על כל בדיקה כאימות עצמאי של התנהגות מסוימת במערכת שלך!

נסו בעצמכם

using System;

namespace LibrarySystem
{
    class Program
    {
        public static void Main(string[] args)
        {
            // קרא את מספר הבדיקות שיש להריץ
            int numTests = Convert.ToInt32(Console.ReadLine());

            // TODO: צור אובייקט מסוג LibraryTests והריץ את numTests הבדיקות הראשונות
        }
    }
}

כל השיעורים ביחידה תכנות מונחה עצמים

תרגלו בעצמכם: קומפיילר C# אונליין