سؤال

أريد أن أكتب اختبارات الوحدة لـ JavaMail.أنا أستخدم بالفعل خادم Outlook المُجهز.لذلك سؤالي هو ما هي أفضل طريقة لكتابة اختبارات الوحدة:أعني:ماذا يجب أن أتحقق؟

  1. تحقق مما إذا كان برنامجي فقط يرسل خطابًا (اتصل بالطريقة المناسبة مثل Transport.send(msg))
  2. أو التحقق مما إذا تم استلام الرسالة من قبل المرسل إليه؟
هل كانت مفيدة؟

المحلول

اختبارات الوحدة هي اختبارات بسيطة لا علاقة لها بالأنظمة الأخرى.يمكن لاختبار التكامل التحقق من التعاون مع خادم آخر مثل Outlook.

في اختبار الوحدة يجب عليك محاكاة خادم البريد واختبار الكود الخاص بك فقط.أنت مسؤول عن الكود الخاص بك فقط.بالنسبة لخادم البريد الوهمي البسيط، قم بمحاكاة سلوكه (وهمي) وحالات ركن الاختبار.

اقرا هذا: ما الفرق بين اختبارات الوحدة واختبارات التكامل؟

نصائح أخرى

بالنسبة إلى اختبارات الوحدات (كما يقول MariuszS)، يجب ألا تتصل بنظام حقيقي.ألق نظرة على JavaMail Mock2 https://github.com/salyh/javamail-mock2 تم تصميم هذا لإجراء اختبارات الوحدات باستخدام JavaMail ولا يحتاج إلى نظام حقيقي.

إنه يركز بشكل أساسي على IMAP/POP3 ولكن SMTP Mock متاح أيضًا.متوفر في مافن سنترال.

سمات

  • دعم imap، imaps، pop3، pop3s، smtp، smtps
  • المدعومة لPOP3:الإرسال إلى POP3Folder، Folder.getUID (رسالة نصية)
  • المدعومة لIMAP:الإرسال إلى IMAPFolder، الإرسال إلى UIDFolder، المجلدات الفرعية، -Folder.getMessagesByUID(...)، حذف/إعادة تسمية المجلدات، إلحاق الرسائل
  • دعم SMTP:النقل الوهمي.إرسال()

غير مدعوم في الوقت الحالي:امتدادات IMAP مثل IDLE، CONDSTORE، ...ويلقي على POP3Message/IMAPMessage، ومستمعي المتجر

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