كيفية إعادة اختبار الوحدة إعادة توجيه في CFWHEELS

StackOverflow https://stackoverflow.com/questions/2293562

  •  21-09-2019
  •  | 
  •  

سؤال

ما هي الطريقة الصحيحة لاختبار الوحدة إجراء وحدة تحكم يؤدي إعادة توجيه؟

تحديث: أنا مطور أساسي في مشروع CFWHEELS. السبب الكامل الذي أطرحه على هذا السؤال هو أنني أعمل حاليًا على تعزيز إطار الاختبار المدمج الذي لدينا وأتساءل عن كيفية التعامل وتنفيذ شيء مثل هذا في CFWHEELs لتسهيل على المطورين اختبار تطبيقهم .

تحديث: لقد اكتشفت كيفية اختبار هذا. يبدو أنه سيتعين علينا إعادة كتابة وحدة تحكم العجلات الداخلية قليلاً لأداء إعادة التوجيه بعد اكتمال الإجراء وبعد نقلها إلى المرسل. الشيء الوحيد في هذا النهج هو أن أي رمز بعد إعادة توجيه () سيتم تشغيله إلا إذا اتخذت الاحتياطات المناسبة قبل اليد ؛ يتضمن ذلك إما وضع عائد بعد بيان إعادة التوجيه () أو وضع عمليات التحقق المشروطة في إجراءك لعزل رمز إعادة التوجيه () من التعليمات البرمجية الأخرى. كما أنه ينطوي على التأكد من أنه لا يتم تقديم أي شيء آخر بمجرد إجراء إعادة توجيه ().

هل كانت مفيدة؟

المحلول

تصبح أشياء من هذا القبيل أسهل بكثير في اختبار ما إذا كنت قد قمت بتفكيك آلية إعادة التوجيه إلى وظائف متعددة: أ) وظيفة تحدد عنوان URL المستهدف و B) وظيفة تؤدي إعادة التوجيه.

وبهذه الطريقة ، يمكنك اختبار الوظيفة بسهولة شديدة ، والوظائف هي التي تريد اختبارها على أي حال. إنه الرمز أنت كتب. إنه المكان الذي يكون فيه منطقك الحقيقي. FunctionB ليس رمزك ؛ إنها أحشاء Coldfusion ، وليس هناك الكثير من المعنى في اختبار clification.

إذا كنت في مهمة لتحقيق تغطية اختبار بنسبة 100 ٪ ، فيمكنك إنفاق 10 اختبارات للوظيفة حيث تمارس جميع الفروع المختلفة لمنطقك ، ثم اختبار واحد لـ FunctionB الذي يمارس إعادة التوجيه بالطريقة التي يقترحها تيري ؛ لذلك بهذه الطريقة ، تحصل على اختبار بطيء واحد فقط بدلاً من 10.

يمكنك تعميم هذا النهج للاستخدامات في السيناريوهات الأخرى: أنظمة الملفات ، و WebServices ، و HTTP ، و FTP ، والبريد الإلكتروني ، وما إلى ذلك: "استخراج الأشياء التي يمكنك التحكم فيها والاختبار من الأشياء التي لا يمكنك التحكم فيها ولا ترغب في اختبارها "

نصائح أخرى

يمكنك استدعاء وحدة التحكم باستخدام عنوان URL المناسب باستخدام CFHTTP مع إعادة توجيه إلى خطأ. ثم اختبر هيكل نتيجة CFHTTP الناتج ، يجب أن يكون لديه معلومات حول المكان الذي ستأخذك فيه إعادة التوجيه.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top