محتويات الدورة

اختبار API / أساسي: ملاحظات واجهة موثوقة / الدرس 1

تحويل وعود الواجهة إلى أدلة قابلة للاختبار

بناء معايير حكم صريحة لواجهة مكتبة خيالية وتحديد ما تثبته الاختبارات المحلية بالفعل.

وقت القراءة التقريبي: 4 دقيقةتاريخ مراجعة المحتوى
في هذه الصفحة

أهداف الدرس

  • التمييز بين متطلب العمل وعقد البروتوكول ومعيار الحكم على الاختبار.
  • تصميم حالات قبول ورفض قابلة للملاحظة دون الاتصال بأي واجهة.

ابدأ بوعد قابل للملاحظة

يحتاج الاختبار إلى أساس للحكم على النتيجة. قد تعد واجهة قائمة القراءة الخيالية بأن إضافة كتاب متاح تنشئ مدخلا واحدا يملكه القارئ الموثق. يتضمن الوعد خصائص مستقلة: تحدد الاستجابة المدخل، وتأتي الملكية من سياق موثوق، ويبقى الكتاب المختار صحيحا، ويزيد العدد مرة واحدة. عبارة «يعيد نجاحا» تفقد معظم المتطلب. حدد النتائج المهمة مع صاحب المنتج، ومنها ما يجب ألا يتغير عند الرفض. افصل معرفات التدريب المختلقة عن الحسابات والبيانات الحقيقية.

اجعل معيار الحكم مستقلا

معيار الحكم هو القاعدة التي تقرر قبول النتيجة الملحوظة. إذا حسب الاختبار المالك المتوقع باستدعاء الدالة المعيبة نفسها التي يستخدمها التنفيذ، فإن التطابق يقدم دليلا ضعيفا. استخرج القيم المتوقعة من بيانات صغيرة تمت مراجعتها. يقارن المثال الاستجابة والحالة الناتجة معا؛ فقد تكون الاستجابة صحيحة رغم تعديل خاطئ. النموذج يعمل في الذاكرة ولا يثبت التوجيه أو وسيط التوثيق أو التسلسل أو التخزين أو اتصال HTTP. تحتاج تلك الحدود إلى أدلتها الخاصة.

python فحص الاستجابة والتعديل معا
before = []
response = {"status": 201, "body": {"id": "entry-7", "book": "book-4", "owner": "reader-a"}}
after = [{"id": "entry-7", "book": "book-4", "owner": "reader-a"}]
assert response["status"] == 201
assert response["body"] == after[0]
assert len(after) == len(before) + 1
assert after[0]["owner"] == "reader-a"
print("creation evidence accepted")
الناتج المتوقع
creation evidence accepted

يفحص هذا البرنامج المحلي الكامل ملاحظة مختلقة مقابل قيم متوقعة صريحة. تعني الرسالة نجاح التأكيدات فقط، ولا تثبت أن خدمة منشورة تنشئ المدخلات أو تحميها.

اختيار الحالات بحسب الفروق المؤثرة

أنشئ مصفوفة صغيرة قبل زيادة عدد الأمثلة. أدرج كتابا متاحا وكتابا مجهولا وإضافة مكررة وطلبا بلا توثيق. أعط كل حالة هدفا منفصلا وأثرا متوقعا على الحالة. المصفوفة وثيقة تخطيط وليست حزمة اختبارات تنفيذية. لا تنسخ فروع التنفيذ إلى أسماء الحالات، فقد تخفي سلوكا مطلوبا لم يطبق. تؤكد حالة الرفض المفيدة الاستجابة الموثقة وعدم إنشاء مدخل أو حدث أو إشعار. سجل المتطلبات غير المحسومة كأسئلة بدلا من اعتبار سلوك الخدمة الحالي هو الصحيح.

json جدول قرارات خيالي خضع للمراجعة
{"operation":"add-book","cases":[{"case":"available","status":201,"entryDelta":1},{"case":"unknown-book","status":404,"entryDelta":0},{"case":"duplicate","status":409,"entryDelta":0}]}

هذه الحالات هي اختيارات العقد الخيالي وليست إلزامية لكل واجهة. الجدول بيانات غير قابلة للتنفيذ. يجب أن يحدد العقد الحقيقي المعتمد سلوك الهوية والتكرار والإفصاح الخاص به.

مطابقة حدود الاختبار مع السؤال

استخدم اختبار دالة نقية لقرار عمل، واختبار مكون للتسلسل وربط التطبيق، واختبار تكامل مصرحا به لسلوك البروتوكول والتخزين الحقيقي. قد يكشف اختبار شامل فشلا يراه المستخدم دون تفسير سببه. تساعد الفحوص الأصغر في تحديد الحد المعطوب. وفي المقابل لا تثبت آلاف البدائل الوهمية أن النظام المركب يعمل. صف كل اختبار بالتبعيات الموجودة والمستبدلة. تختلف أسماء الطبقات بين الفرق، لذا فإن وصف الحدود أوضح من كلمة تكامل وحدها.

الإبلاغ عن الدليل وحدوده

تتضمن النتيجة المفيدة معرف المتطلب وإصدار البيانات والملاحظة وقاعدة المقارنة وحدود البيئة. عبارة «كل الاختبارات ناجحة» لا تبين هل شغلت الحالات المطلوبة أصلا. سم المثال التوضيحي باسمه. وعند نجاح برنامج محلي اذكر الخاصية التي فحصها دون تحويلها إلى ادعاء بموثوقية الخادم أو أمنه. احتفظ بتفاصيل تفسر عدم التطابق واستبعد الحمولات الخاصة. يتيح ذلك مراجعة التغييرات لاحقا وتحديد الوعد المختبر وافتراضات النشر التي ما زالت تحتاج إلى تحقق.

الأخطاء الشائعة وإصلاحها

حالة نجاح تخفي مالكا خاطئا

لماذا يحدث؟
يفحص معيار الحكم نتيجة النقل وحدها.
كيف تصلحه؟
قارن مالك البيانات الموثوق والمدخل الناتج.
كيف تتجنب تكراره؟
اشترط فحص الاستجابة والحالة للعمليات الحساسة للملكية.

القيم المتوقعة والفعلية تستخدمان مساعدا معيبا واحدا

لماذا يحدث؟
يكرر الاختبار قرار التنفيذ.
كيف تصلحه؟
اكتب قيما متوقعة مستقلة خضعت للمراجعة لحالة صغيرة.
كيف تتجنب تكراره؟
راجع مصدر كل قيمة متوقعة مهمة.

نجاح محلي يوصف بأنه ضمان للنشر

لماذا يحدث؟
لم توثق حدود الدليل.
كيف تصلحه؟
حدد التبعيات المحاكاة والغائبة.
كيف تتجنب تكراره؟
اربط النتيجة بنطاق البيئة والبيانات.

اختبر فهمك

1. تعيد الاستجابة 201 وentry-7 لكن يظهر مدخلان. ما التأكيد الناقص؟

اعرض الحل المشروح

يجب مقارنة فرق الحالة، لا معرف الاستجابة فقط. مع بيانات فارغة اشترط مدخلا واحدا وحقوله الدقيقة. وإذا أصدر التنفيذ أحداثا، افحص حدوث الأثر المطلوب مرة واحدة. لا تكفي الاستجابة لإثبات ذلك.

2. صمم دليلا لكتاب مجهول دون تقرير سياسة الإنتاج الحقيقية.

اعرض الحل المشروح

أعلن عقد التدريب أولا: يعيد الكتاب المجهول 404 ولا يغير المدخلات. استخدم معرفا مختلقا وقارن الحالة قبل الطلب وبعده وشكل الرفض. وضح أن واجهة أخرى قد تعتمد سياسة إفصاح مختلفة يجب الاختبار وفقها.

أهم ما تعلمته

  • يحتاج معيار الحكم إلى توقع مبرر بصورة مستقلة.
  • افحص الحالة والآثار الجانبية إلى جانب حقول الاستجابة.
  • لا يفيد الدليل إلا ضمن حدوده المسجلة.

المراجع الرسمية