Menu
Coddy logo textTech

בדיקות ואינטגרציה

חלק מהיחידה תכנות מונחה עצמים במסלול ה-Dart של Coddy. שיעור 106 מתוך 110.

challenge icon

אתגר

קל

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

תוסיף מחלקה בשם LibraryTester שמריצה בדיקות אינטגרציה לכל התכונות של הספרייה שלך — ובודקת שספרים, משתמשים, מנהלים, השאלות, חיפושים וניהול מלאי פועלים כולם כמצופה כשהם משמשים יחד.

  • book.dart, user.dart, admin.dart, library.dart: השאר את המחלקות הקיימות ללא שינוי.
  • library_tester.dart: צור מחלקה חדשה בשם LibraryTester שתבדוק את מערכת הספרייה שלך. עליה לכלול מופע של Library ואת מתודות הבדיקה הבאות:
    • setupTestData() — רושמת מנהל (A001, Test Admin), מוסיפה שני ספרים באמצעות המנהל (978-0-01, Book One, Author A וגם 978-0-02, Book Two, Author B), ורושמת משתמש (U001, Test User)
    • testBorrowing() — משאילה את הספר הראשון למשתמש, מנסה להשאיל אותו שוב (הפעולה אמורה להיכשל), ואז מחזירה אותו. הדפס Borrowing test: PASS לאחר השלמת הפעולה.
    • testSearch() — מחפשת ספרים שהכותרת שלהם מכילה את Book, מדפיסה Search found: X books כאשר X הוא מספר התוצאות, ואז מדפיסה Search test: PASS
    • testAdminOperations() — מסירה את הספר השני באמצעות המנהל, מדפיסה את מספר הספרים בתבנית Books after removal: X, ואז מדפיסה Admin test: PASS
    • runAllTests() — קוראת ל־setupTestData(), ואז מריצה את כל שלוש מתודות הבדיקה לפי הסדר, ולבסוף מדפיסה All tests completed!
  • main.dart: צור מופע של LibraryTester וקרא ל־runAllTests() כדי להריץ את חבילת הבדיקות המלאה.

פלט צפוי:

A001 added "Book One"
A001 added "Book Two"
U001 borrowed "Book One"
Book not available
U001 returned "Book One"
Borrowing test: PASS
Search found: 2 books
Search test: PASS
A001 removed "Book Two"
Books after removal: 1
Admin test: PASS
All tests completed!

נסו בעצמכם

import 'library_tester.dart';

void main() {
  // TODO: צרו מופע של LibraryTester וקראו ל־runAllTests()
}

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

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