Next.js / المتقدم: أنماط المخبأ والدورة وأدلة الإصدار / الدرس 16
الاختبار والرصد وأدلة التشغيل الصادقة
اختر حد اختبار يثبت السلوك المدعى واجمع أدلة مراحل آمنة عند الفشل.
في هذه الصفحة
أهداف الدرس
- افصل المساعد النقي واختبار المكون والبناء ودمج المتصفح والخادم.
- أكد الهوية والآثار المحمية والإخراج الدقيق لا الحالة وحدها.
يحتاج ادعاء الإطار الحد المنفذ المقابل له
يثبت المحقق قرار الإدخال لا اكتشاف المسار أو API الطلب. يثبت المكون بيئته المختبرة فقط وقد يحتاج async Server Component أو سلوك الخادم استراتيجية أخرى مدعومة. يفحص البناء الترجمة والإنتاج لا كل تفاعل أو منع. اقرأ دليل الأداة الحالي وسجل حدودها، ولا تثبت أو تفتح خادماً لدالة نقية تعمل بـNode المتاح. يتيح اختيار الحد أولاً معرفة هل الفشل في منطق المجال أو تركيب الإطار أو المتصفح، بدلاً من إضافة اختبار كبير يخفي السبب تحت إعداد شبكة واعتمادات لا علاقة لها بالقرار البسيط.
احفظ عينات خاصة بالمسار ومتطلبات دليلها
JSON خطة اصطناعية لا طلبات منجزة. تسمي تأكيد الهوية والأثر لأن النجاح قد يعيد بطاقة مستأجر آخر والمنع قد يتبع كتابة محرمة. أدرج البناء والطلب والفعل المباشر ونمط المخبأ. لا تنسخ حالات عامة؛ تحتاج البيانات مفاتيح عامة والكتابة إعادة والتدفق فشلاً متأخراً وتنظيفاً. أبق الهوية اصطناعية ولا تضع رمزاً حقيقياً بملف المراجعة. تتحول المتطلبات لاحقاً إلى تأكيدات في الأداة المناسبة، ولا يثبت مجرد حفظ الصف في JSON أن التطبيق اجتاز الحالة المذكورة.
{"route":"course-card-and-rename","mode":"cacheComponents-false","cases":["exact-eligible-card","denied-principal-no-write","invalid-input-no-write","source-failure-safe-output","commit-before-lost-response","account-switch-pending-result"],"execution":"plan-only"}
تصف الخطة التأكيدات المطلوبة لا اختبارات إطار ناجحة، ويمكن تحليلها دون خادم.
أثبت محلياً سبق السياسة للأثر المحمي
يقبل الموائم كاتباً محقوناً ويمنع العابر قبل استدعائه، ويسبب المؤهل أثراً اصطناعياً واحداً. يفحص ترتيب JavaScript لا فعلاً أو جلسة أو معاملة. يحفظ الدمج القاعدة مع التحليل والهوية والمصدر الحقيقيين. لا يكشف فحص الرمز وحده كتابة سبقت الرفض. اجعل الساعة والبديل حتميين لا نوماً أو حالة خارجية. يجب أن تشمل العينة هوية الكائن والنطاق نفسه للمسموح والممنوع حتى لا ينجح الاختبار لأن كل مستدع مر إلى مورد مختلف بطريق لا يختبر العزل المقصود.
function rename(principal,tenant,writer) {
if(principal.tenantId!==tenant)return {code:"DENIED"};
return writer();
}
let effects=0;const writer=()=>({revision:++effects});
console.assert(rename({tenantId:"lab-b"},"lab-a",writer).code === "DENIED");
console.assert(effects===0);
console.assert(rename({tenantId:"lab-a"},"lab-a",writer).revision===1);
console.assert(effects===1);
يسبب المنع صفراً والسماح واحداً دون طلب Next أو اعتماد أو مصدر دائم.
اجمع دليل مرحلة واعتماد آمنين
سجل معرفاً مراجعاً والبناء والضبط وفئة آمنة ومرحلة زمن وعد مصدر محدوداً. تجنب URL الخاص والرمز والحمولة. افصل انتظار المصدر والجلب والتصيير والعميل عند الحاجة ولا تجمع المتداخل كزمن ساعة. لا تثبت 2xx اكتمال المجال ويختلف القطع عن جسم خطأ مكتمل. استخدم ربطاً مضبوطاً لا تسميات مستخدم كثيرة أو تفريغ رسائل. يحفظ التقرير معنى قياس سرعة بعد التغيير؛ فقد يقل زمن الرد لأن الخدمة صارت ترجع بديلاً سريعاً غير صحيح أو رفضاً لم يكن مقصوداً، لا لأن المصدر تحسن فعلاً.
صرح بالتنفيذ الدقيق وتجنب ادعاء نجاح دمج لم يحدث
سم المشغل والنماذج والعينات والحدود غير المنفذة. لا تثبت الصياغة عزل المخبأ أو استدعاء رد وهمي فرض الملف في المتصفح. وسع عند تغيير أو قلق مبرر وبأداة معتمدة. يشغل المقرر المراقب ويحلل المصفوفة فقط دون ترجمة تطبيق أو حزمة اختبار أو HTTP أو إماهة أو حمل. ينبغي أن يعرف المراجع ما بقي من ضمان الإطار والتشغيل. لا يبرر النجاح المحدود عبارة «تم اختبار الواجهة بالكامل»، لكنه يظل دليلاً مفيداً على قاعدة المجال المحددة التي لا تحتاج خدمة لتثبتها.
الأخطاء الشائعة وإصلاحها
يوصف مساعد نقي كاختبار Next كامل
- لماذا يحدث؟
- لم يميز التقرير الحد الذي شارك في التنفيذ فعلياً.
- كيف تصلحه؟
- سم أدلة المحلي والمكون والبناء والنقل بصورة منفصلة.
- كيف تتجنب تكراره؟
- اذكر الحدود غير المنفذة المهمة بجانب النتائج.
تكتب عملية رغم إرجاع المنع
- لماذا يحدث؟
- فحصت التأكيدات الإخراج وأغفلت آثار المصدر.
- كيف تصلحه؟
- أكد عدم استدعاء الكاتب المحمي عند الرفض.
- كيف تتجنب تكراره؟
- احفظ عينتي السماح والمنع للكائن نفسه.
يكشف الرصد قيم استعلام أو فعل خاصة
- لماذا يحدث؟
- استعملت بيانات النقل الخام كتسجيل تشخيص روتيني.
- كيف تصلحه؟
- استخدم معرفات آمنة محدودة وربطاً داخلياً مضبوطاً.
- كيف تتجنب تكراره؟
- راجع حقول التسجيل الدقيقة ومدة الاحتفاظ.
اختبر فهمك
1. لماذا لا يغطي اختبار مكون متزامن Server Component غير متزامن تلقائياً؟
اعرض الحل المشروح
قد لا تنفذ البيئة تصيير الخادم وبروتوكول المكون غير المتزامن. راجع دعم الأداة واختر دمجاً مناسباً لهذا الحد. احتفظ بفائدة المساعد النقي ولا تستنتج تنفيذ المسار أو مخبأه أو الإماهة من اختبار لم يختبرها.
2. ماذا يثبت مراقب الكاتب ولا تثبته نتيجة DENIED وحدها؟
اعرض الحل المشروح
يثبت أن فرع الرفض المحلي لم يستدع الأثر؛ فقد يكتب تنفيذ ثم يرفض. لا يثبت المراقب المصادقة أو ذرية القاعدة، فاجمعه باختبارات المدخل والمصدر الفعلية عند الإذن بالدمج.
أهم ما تعلمته
- تسمي ادعاءات الاختبار الحد الذي اختبر فعلياً.
- تهم أدلة الهوية والآثار والخصوصية بجانب الحالة والسرعة.