Menu
Coddy logo textTech
flag Ar iconالعربيةdown icon

الاختبار والتكامل

جزء من قسم Object Oriented Programming في رحلة 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()
}

جميع دروس Object Oriented Programming