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

GraphQL / المتوسط: السياسة والمصادر والعملاء / الدرس 12

اختبارات العمليات وعينات العقود

اختر اختبارات تثبت الإكراه وشكل التنفيذ وحدود السياسة دون تشغيل خدمة.

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

أهداف الدرس

  • ميز اختبار السياسة النقي وتنفيذ العملية داخل العملية ودمج HTTP.
  • ابن عينات حدودية لقبول null ووجود الإدخال وترتيب الدفعات.

اختبر الحد القابل للفشل فعلاً

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

صف اختباراً واقعياً داخل العملية

يوضح الجزء اختبار GraphQL.js بمخطط مبني وسياق اصطناعي. ليس برنامجاً كاملاً لأن الحزمة والعينة غير مضمنتين. أكد البيانات المختارة لا غياب الخطأ فقط؛ فقد يعيد المحلل سجلاً خاطئاً بلا استثناء. في المنع أكد null أو الخطأ الموثق وعدم استدعاء كاتب. لا تحفظ تفاصيل داخلية في لقطات الأخطاء العامة.

javascript اختبار عملية GraphQL.js توضيحي
const result = await graphql({
  schema,
  source: "query Card($id: ID!) { course(id: $id) { id title } }",
  variableValues: {id: "c1"},
  contextValue: syntheticContext
});
assert.deepEqual(result.data, {course:{id:"c1",title:"Graph foundations"}});
assert.equal(result.errors, undefined);

يتطلب graphql وassert والمخطط والسياق، ويوثق عقداً متوقعاً ولم يشغل كاختبار محرك.

اجعل مصفوفة الفشل محددة

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

تحقق من وجود حقول التحديث مستقلاً

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

javascript اختبار محلي لدلالات التحديث
function applySummary(record, input) {
  return Object.hasOwn(input, "summary")
    ? {...record, summary: input.summary}
    : {...record};
}
const old = {id:"c1", summary:"Old"};
console.assert(applySummary(old, {}).summary === "Old");
console.assert(applySummary(old, {summary:null}).summary === null);
console.assert(applySummary(old, {summary:""}).summary === "");
console.assert(old.summary === "Old");

تنجح الأربعة لتثبت وجود العضو وعدم تغيير الأصل لا إكراه GraphQL أو الحفظ.

سجل ما اختبر وما لم يختبر

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

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

يسمى نجاح اختبار محلل اختبار واجهة

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

تنجح لقطة مع مستأجر خاطئ

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

يخفي توقيت متذبذب سلوك الاشتراك

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

اختبر فهمك

1. ماذا يثبت اختبار تحديث نقي لا تثبته لقطة المخطط؟

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

يثبت تمييز الدالة للحذف وnull والفارغ وعدم تغيير الأصل. تعرض اللقطة البنية لا المعنى. كلاهما مفيد ويبقى اختبار العملية لتمرير الإدخال المكره فعلياً.

2. لماذا يؤكد اختبار طفرة ممنوعة عدم استدعاء الكاتب؟

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

لا يثبت الخطأ وحده غياب الأثر؛ فقد يكتب التنفيذ ثم يرفض. استعمل مراقب خدمة اصطناعياً ليؤكد منع الوصول لحد الكتابة، وتحقق من الخطأ العام الآمن دون تفاصيل المصدر.

أهم ما تعلمته

  • اختبر التنفيذ والمجال والنقل كحدود منفصلة.
  • يؤكد الاختبار بيانات أو آثاراً مفيدة لا غياب الخطأ فقط.

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