عند استخدام Mockito للتسخين ، يمكن للعديد من المزالق الشائعة أن تجعل اختباراتك أقل فعالية أو أكثر صعوبة في الحفاظ عليها. فيما يلي بعض هذه المزالق وكيفية تجنبها:
1. Over Mocking **
واحدة من أهم المزالق هي الإفراط في التغلب. يحدث هذا عندما تسخر من الكثير من التبعيات ، مما يؤدي إلى اختبارات هشة ويصعب الحفاظ عليها. يمكن أن يتسبب الإفراط في التغلب على اختبارات لتركيز أكثر على السخرية أكثر من السلوك الفعلي للنظام قيد الاختبار. لتجنب ذلك ، ركز على السخرية فقط من المتعاونين الذين لديهم سلوك غير تافهة أو أولئك الذين تريد التحقق من تفاعلاتهم. استخدم مثيلات حقيقية للتعاون البسيط [3].2. استثناءات غير صالحة **
يضمن Mockito أن يكون الاستثناء الذي يتم طرحه صالحًا للطريقة المحددة. إذا حاولت إلقاء استثناء غير موجود في قائمة الاستثناءات التي تم فحصها للطريقة ، فسيشتكي Mockito. على سبيل المثال ، إذا لم تعلن طريقة ما "ioException" ، فإن محاولة السخرية منها لرمي "ioException" ستؤدي إلى خطأ [1]. تأكد دائمًا من أن الاستثناء الذي يسخر منه صالح للطريقة.3. استخدام `thenthrow ()` مع طرق الفراغ **
`عندما (). بدلاً من ذلك ، استخدم `dothrow ()` لطرق الفراغ. خلط هذه الطرق بشكل غير صحيح يمكن أن يؤدي إلى أخطاء [2].4. عدم الخصوصية **
عندما يسخر من الاستثناءات ، من الأهمية بمكان أن تكون محددًا حول الاستثناءات التي تختبرها. تجنب الإفراط في التغلب من خلال التركيز على الاستثناءات ذات الصلة بسيناريو الاختبار. هذا يساعد على إبقاء الاختبارات مركزة وقابلة للصيانة [2] [8].5. التعامل غير صحيح مع عمليات الإعدام **
تأكد من استعداد رمز التطبيق للتعامل مع الاستثناءات بشكل صحيح ، حتى عند السخرية أثناء الاختبارات. يتضمن ذلك اختبار المنطق للتعامل مع الاستثناءات لضمان تصرفه كما هو متوقع [2].6. استخدام رسائل خطأ ذات معنى **
عندما يسخر من الاستثناءات ، قم بتضمين رسائل ذات معنى للمساعدة في تشخيص المشكلات في حالة فشل الاختبارات. تعزز هذه الممارسة وضوح وفعالية اختباراتك [2].7. اختبار الاستثناء معالجة المنطق **
تأكد من أن الكود يتعامل مع الاستثناءات كما هو متوقع. يتضمن ذلك التحقق من أن التطبيق يتصرف بشكل صحيح عند طرح الاستثناءات ، وهو أمر بالغ الأهمية لبناء تطبيقات مرنة [2].8. إعادة تعيين وتخليص السخرية **
يوفر Mockito ميزات مثل `Reset ()` و `clearinvocations ()` لإدارة السخرية. ومع ذلك ، ينبغي استخدام هذه بشكل ضئيل. يجب أن تتم إعادة تعيين وهمية فقط في حالات نادرة ، مثل عندما يتم حقن حاوية وهمية ولا يمكن إعادة إنشاءها لكل اختبار. يمكن أن تكون دعوات المقاصة مفيدة إذا كان إعادة إنشاء وهمية يؤدي إلى النفقات العامة الكبيرة [1].من خلال إدراك هذه المزالق واتباع أفضل الممارسات ، يمكنك استخدام Mockito بشكل فعال لسخر الاستثناءات وضمان أن اختباراتك قوية وقابلة للصيانة.
الاستشهادات:[1] https://www.toptal.com/java/a-guide-to- everyday-mockito
[2] https://www.browserstack.com/guide/mockito-throw-exception
[3] https://javanexus.com/blog/avoiding-mockito-testing-pitfalls
[4] https://stackoverflow.com/questions/9186604/mockito-exception-when-requires-an-argument-hich-has-to-a-method-call-on
[5] https://stackoverflow.com/questions/22540108/best-practices-with-mockito
[6] https://stackoverflow.com/questions/52512548/mock-method-to-do-not-throw-an-exception/52514628
[7] https://contributors.scala-lang.org/t/mockito-testing-nulls-and-ed-expections/3915
[8] https://www.janbasktraining.com/community/java/throw-checked-exceptions-from-mocks-with-mockito