سؤال

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

giveacodicetagpre.

لن يعمل هذا لأن الكائن الداخلي مقارنة بالرجوع، وليس العضوية:

giveacodicetagpre.

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

giveacodicetagpre.

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

هل أنا أفتقد شيئا؟ هل من الممكن تكوينه لتتمكن من إرجاع عضو غير متطابق فعلي.

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

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

المحلول

منذ أن أجاب أحد، سأقدم إجابتي الخاصة.

لذلك، يبدو أنه لا يمكنك القيام بذلك OOTB، ما لم تكتب بعض التعليمات البرمجية الإضافية. لقد لفت الرمز في مجموعة طرق التمديد. تتيح لك هذه الطرق تحديد ما يجب مقارنة خصائص الخصائص الداخلية / المجموعة باستخدام شبه داخلي، وليس بالرجوع إليه. لا تحتاج إلى إنشاء أي وكلاء يدويا، يتم التعامل مع كل شيء داخليا من خلال هذه الملحقات. وتم تسجيل نتائج جميع المقارنات الداخلية، حتى تتمكن من رؤية العضو الذي لديه قيمة غير صالحة.

هنا هو الاختبار من السؤال باستخدام طريقة تمديد "internerlikeness".

giveacodicetagpre.

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

giveacodicetagpre.

يمكنك العثور على التعليمات البرمجية المصدر والمزيد من الأمثلة على Github.

href="https://githubub.com/jmansar/semantickparisonextensionsions" rel="nofollow"> https://github.com/jmansar/semantickparisnextensions

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