سؤال

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

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

المحلول

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

نصائح أخرى

إطار الربيع جميلة جاهزة كائنات وهمية لعدة فئات من بريمج API:

http://static.springframework.org/spring/docs/2.5.x/api/org/springframework/mock/web/package-summary.html

حسنا.وتجاهل 'القط' بت الترميز إلى بريمج, أفضل رهان هو خلق يسخر من أجل الاستجابة لطلب الكائنات ، ومن ثم نقول ماذا تتوقع من ذلك.

حتى على مستوى فارغة doPost ، باستخدام EasyMock, عليك

public void testPost() {
   mockRequest = createMock(HttpServletRequest.class);
   mockResponse = createMock(HttpServletResponse.class);
   replay(mockRequest, mockResponse);
   myServlet.doPost(mockRequest, mockResponse);
   verify(mockRequest, mockResponse);
}

ثم البدء في إضافة رمز إلى doPost.يسخر سوف تفشل لأن لديهم أي توقعات ، ومن ثم يمكنك إعداد التوقعات من هناك.

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

فصل أجزاء من التعليمات البرمجية التي تتعامل مع طلبات HTTP والاستجابة من الأجزاء التي لا منطق الأعمال أو قاعدة بيانات التلاعب.في معظم الحالات سوف تنتج العمارة من ثلاث طبقات ، مع البيانات طبقة (البيانات-قاعدة/استمرار), خدمة طبقة (على منطق الأعمال) و عرض-الطبقة (HTTP الطلبات والاستجابات).

  1. يمكنك اختبار الوحدة الأولى طبقتين من دون أي بريمج الأشياء على الإطلاق ؛ سيكون من الأسهل أن الاختبار بهذه الطريقة.
  2. يمكنك اختبار طبقة العرض ، كما يقترح آخرون, باستخدام وهمية HTTP طلب رد الأشياء.
  3. أخيرا, إذا كنت تشعر حقا هو ضروري ، يمكنك أن تفعل اختبارات التكامل باستخدام جدا مثل HtmlUnit أو JWebUnit .

"في حاوية" اختبار إلقاء نظرة على الصبار

إذا كنت تريد أن تكون قادرة على اختبار بدون تشغيل حاوية يمكنك إما محاكاة مكوناته الخاصة mockobjects (مثلا ، مع EasyMock) أو قد تتمكن من محاولة MockRunner الذي "محددة سلفا" بذرة لاختبار servlets, jdbc-اتصالات.... الخ

تحديث فبراير 2018: OpenBrace محدودة قد أغلقت, و ObMimic المنتج لم يعد معتمدا.

إذا كنت ترغب في أحدث بديل ServletUnit على JUnit اختبار Servlets, قد تجد الشركة ObMimic مكتبة مفيدة.وهو متاح مجانا من الموقع تنزيل الصفحة.

كما هو الحال مع ServletUnit ، فإنه يوفر مكتبة من الفئات التي يمكنك استخدامها في الحالات العادية JUnit أو TestNG الاختبارات خارج أي بريمج حاوية لمحاكاة بريمج API.

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

للحصول على التفاصيل الكاملة رمز المثال "كيف إلى" أدلة جافادوك إلخ ، انظر الموقع.

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