Testing
المسار: Swift وSwiftUI الوحدة: التخزين والجودة
مدخل إلى الدرس: Testing
تعرّف على Testing ضمن مسار Swift وSwiftUI، مع تفسير الفكرة وكيفية استخدامها ومثال عملي وتدريب ذاتي يساعدك على اختبار الفهم.
طريقة الدراسة: اقرأ التعريف، تتبّع المثال في الشرح، نفّذه بنفسك، ثم اختبر النتيجة والحالات الاستثنائية قبل الانتقال.
المفهوم التقني
اختبر behavior يستطيع المستخدم أوالمستهلك ملاحظته. Unit test يعزل قاعدة صغيرة، integration test يختبر حدودًا حقيقية بين مكونات، وE2E يثبت رحلة حرجة؛ لا تعوّض ضعف التصميم بكثرة mocks مرتبطة بتفاصيل التنفيذ. في Testing ضمن Persistence and quality طبّق هذا المبدأ على الأدوات الفعلية للدورة (Swift value semantics وasync/await وSwiftUI state وNavigationStack وpersistence وأدوات Xcode) وحدد أثره الذي يمكن مراجعته في المشروع.
حوّل Persistence إلى أسئلة تصميم: من يملك هذه المسؤولية؟ أين تحفظ الحالة؟ ما العقد الذي يراه المستهلك؟ وما الدليل الذي يثبت النتيجة؟ لا تنتقل من المصطلح إلى الكود قبل أن تجيب هذه الأسئلة.
صلة هذا الدرس بالمسار
اربط السلسلة هكذا: Local Persistence أعطاك الحالة السابقة، Testing يغيّر مسؤولية محددة فيها، وApp Lifecycle وRelease سيختبر أويوسّع هذا التغيير. إذا اضطررت في الدرس التالي لإعادة العمل من الصفر فحدود هذا الدرس غير مكتملة.
تطبيق خاص بـTesting
ابنِ تطبيقًا مصغرًا لـTesting داخل تطبيق ميزانية شخصية لـ iOS ينتج حالة اختبار ونتيجتها المتوقعة ويجعل حدود Testing ظاهرة للمراجع.
دليل نجاح Testing
- في Testing: اختبار ناجح لحالة أساسية.
- في Testing: اختبار لحالة فشل مقصودة.
- في Testing: اسم اختبار يصف السلوك.
أخطاء مرتبطة بـTesting
- أثناء Testing: اختبار تفاصيل التنفيذ بدل السلوك المهم.
- أثناء Testing: إنشاء اختبار يمر حتى عندما ينكسر السيناريو الحقيقي.
مثال عملي للتطبيق
الموقف: نعمل على تطبيق جوال لعرض المهام وإدارتها مع دعم حالات الاتصال. نحتاج إلى توظيف فكرة Testing لتلبية مطلب محدد يمكن قياس نجاحه.
- حدد البيانات أو المكونات ذات العلاقة في المثال.
- طبّق خطوات الموضوع على نسخة تجريبية بسيطة، ودوّن الناتج المتوقع قبل التنفيذ.
- جرّب حالة صحيحة وحالة خاطئة، وقارن النتيجة بالسلوك المتوقع.
معيار النجاح: تستطيع تفسير السبب وراء كل خطوة وإعادة تنفيذ المثال دون الرجوع إلى الحل.
مراجعة وتمرين تثبيت المهارة
اختبار سريع: اشرح بعبارتك معنى «Testing»، ثم بيّن أين ستستخدمه داخل تطبيق جوال لعرض المهام وإدارتها مع دعم حالات الاتصال، وما الخطأ الذي يجب اختباره قبل الاعتماد على الحل.
تحدٍّ إضافي: غيّر شرطًا واحدًا في التطبيق، وتوقع النتيجة، ثم نفّذ الاختبار وفسّر الاختلاف.
الدرس التالي: App Lifecycle وRelease. من الأفضل إنهاء التجربة الحالية قبل متابعة الدرس التالي.