בדיקות יחידה (NUnit/xUnit)
חלק מהיחידה תכנות מונחה עצמים במסלול ה-C# של Coddy. שיעור 67 מתוך 70.
אתגר
קלבואו נשלים את פרויקט מערכת הספרייה שלך על ידי הוספת בדיקות יחידה! בדיקות חיוניות כדי לוודא שהקוד שלך פועל כראוי וממשיך לפעול כשאתה מבצע שינויים. תיצור קובץ בדיקות ייעודי שיוודא את הפונקציונליות המרכזית של מערכת הספרייה שלך.
תמשיך לעבוד עם מבנה הפרויקט הקיים שלך ותוסיף קובץ בדיקות חדש:
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 הבדיקות הראשונות
}
}
}
כל השיעורים ביחידה תכנות מונחה עצמים
1יסודות התכנות מונחה העצמים
קבצים חיצונייםמרחבי שמות והנחיותמבוא למחלקות ולאובייקטיםמילת המפתח 'this'מתודות ופרמטריםשדות לעומת מאפייניםבנאיםאתחול אובייקטיםסיכום – מחשבון פשוט4ירושה
תחביר ירושה בסיסית (:)מילת המפתח 'base'מילות המפתח Virtual ו-Overrideמחלקות Sealedמחלקת הבסיס 'object'סיכום – היררכיית עובדים7תכונות מתקדמות
העמסת אופרטוריםאינדקסרים (this[])דריסת ToString()מתודות הרחבהסיכום – רשימה מותאמת אישית2מאפיינים וחברים סטטיים
מאפיינים במימוש אוטומטימאפיינים לקריאה בלבד ולכתיבה בלבדשדות ומתודות סטטייםמחלקות סטטיותחברים עם גוף ביטוי5פולימורפיזם וממשקים
פולימורפיזם בזמן קומפילציה לעומת בזמן ריצהממשק לעומת מחלקה מופשטתממשקים מרוביםממשקים מפורשיםהמרה כלפי מעלה והמרה כלפי מטהחזרה: מחשבון צורות8מושגים מתקדמים בתכנות מונחה עצמים
קומפוזיציה במקום ירושהGenerics (מחלקות ומתודות)נציגים ואירועיםמאפיינים ורפלקציהIDisposable והצהרת usingיסודות הזרקת תלויות3ארכיטקטורת מחלקות
נתוני מופע לעומת נתונים סטטייםמילות המפתח 'readonly' ו-'const'שדות גיבויסיכום – מנהל חשבונות בנק12פרויקט: מערכת ספרייה
מבנה הפרויקטמודלים של ספרים ומשתמשיםלוגיקת השאלת ספריםחיפוש באמצעות LINQממשק משתמש בקונסולה / ממשק מנהלבדיקות יחידה (NUnit/xUnit)תרגלו בעצמכם: קומפיילר C# אונליין