سؤال

أحتاج إلى اختبار بعض مكونات HTTP في تطبيق دلفي الخاص بي.أستخدم DUnit وأريد إضافة بعض الأتمتة إلى الاختبار.

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

هل هناك بعض خوادم HTTP متاحة بالضبط لـ Delphi/DUnit؟

أعلم أن فريق موزيلا لديه مثل هذا الخادم, ، ولكن ليس من السهل دمجها في DUnit.

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

المحلول

أنا استخدم إندي TIdHttpServer لخدمة الأشياء في نفس العملية.

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

يمكنك أيضًا إعداد الخادم بشكل فردي على أساس كل حالة اختبار على حدة، مما يجعل اختبارات الوحدة الخاصة بك أسهل في الفهم (بمعنى أنه ليس لديك جزء من "الاختبار" في مكان آخر).

نصائح أخرى

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

إذا كنت تختبر خدمات الصابون، فاستخدم SOAPUI للحصول على خدمة "وهمية" بناء على WSDL. يمكنك إرجاع مجموعة متنوعة من الردود (إما بالتتابع أو استخدام بعض البرمجة النصية البسيطة لمطابقة الردود على محتويات الطلب.) لقد قمت بذلك عن طريق مطابقة "معرف الطلب" (فقط GUID) في طلبياختبار DUNIT، إلى استجابة في SOAPUI.إنه استعلام XPath بسيط لمطابقتها.

يمكنك إرجاع الأخطاء / الاستثناءات "المعلبة"، وبالطبع عندما لا يتم تشغيله، سيكون لديك حالة اختبار "Home's Home".

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