ماذا تفعل عندما تتعارض أفضل ممارسات Java مع Mockito

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

  •  20-09-2019
  •  | 
  •  

سؤال

لقد بدأ فريق التطوير الخاص بي في الاستخدام موكيتو ولها فئات تم تعريفها على أنها "نهائية".لقد قرأت في Java الفعالة بقلم Joshua Bloch وفي موضوع SO متى تستخدم النهائي أن جميع الفئات يجب أن تستخدم المعدل النهائي.لقد كان هناك بعض الخلاف في هذا الموضوع، لكنني أتفق مع فكرة فرض تكوين الطبقة ما لم يكن الميراث منطقيًا.

ماذا علي أن أفعل عندما أرغب في اختبار الفصول الدراسية باستخدام إطار عمل اختبار مثل Mockito الذي يتطلب ألا تحتوي الفصول الدراسية على المعدل "النهائي"؟ آمل أن يواجه شخص آخر مشكلات مماثلة أثناء تطويره.ما هي القرارات التي توصل إليها فريق التطوير الخاص بك؟

هناك إجابتان واضحتان مثل استخدام JMock أو إزالة المعدل "النهائي" في الفئات التي نريد اختبارها، ولكننا نريد الالتزام بإطار اختبار خارجي واحد (إلى جانب JUnit) وقد يكون من الصعب إقناع المطورين الآخرين بإزالة المعدل "النهائي".

شكرًا.

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

المحلول

ماذا تحتاج أكثر:

  1. القدرة على التأكد من أن شخصًا ما لا يرث من صفك، أو
  2. القدرة على التأكد من أن التعليمات البرمجية الخاصة بك قابلة للاختبار باستخدام إطار العمل الساخر الذي تختاره؟

وعلى العموم، أعتقد أنه لا يلزمك الإنفاذ (١).بالنسبة لي، قابلية الاختبار (2)، هي أكثر أهمية بكثير.ما الذي يناسب حالتك بشكل أفضل؟

نصائح أخرى

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

كما ذكرنا سابقًا في الإجابة الأخرى ، يمكنك عمل فصولك النهائية لتنفيذ الواجهة (الواجهة) وفي اختباراتك يسخر من الواجهة (الواجهة).

هذه إحدى فوائد استخدام الكائنات الوهمية؛في مثل هذه السيناريوهات، تجعلك تفكر في كيفية تنظيم التعليمات البرمجية بشكل أفضل.إذا كانت قاعدة التعليمات البرمجية الخاصة بك تحتوي على الكثير من الإشارات إلى الفئات النهائية (وبالتالي فهي ملزمة للتنفيذ الملموس) فإنها تنتهك مبدأ OO الخاص بـ "البرمجة على الواجهة" والحاجة إلى إمكانية اختبار أفضل ستساعدك على التفكير في إعادة البناء للتخلص من الاعتماد على التطبيقات الملموسة.

هذه الورقة حول استخدام الكائنات الوهمية الاختبار الداخلي:اختبار الوحدة باستخدام كائنات وهمية له قسم (4.4) بعنوان اكتشاف الواجهة وهذا ما يفسر كيف تساعد الكائنات الوهمية في اكتشاف الواجهات.

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