سؤال

نحاول التحقق من سلوك إجراء مع Mockito. رمز الاختبار يبدو هكذا

final Type1 mock = mock(Type1.class);
new SomeAction<Type1>(mock).actionPerformed(null);

verify(mock).someMethod();

يحتوي Method ActionPerformed على دعوة Somemethod فقط على الكائن المقدم في مُنشئ Type1. ومع ذلك ، فإن Mockito يشكو من أن مكالمة الطريقة المتوقعة لم تحدث ، بدلاً من ذلك حدثت مكالمة مختلفة. لكن تمثيل السلسلة للمكالمتين المطبوعة بواسطة Mockito هو نفسه بالضبط!

أي تفسير ما يحدث؟

تحديث: errormessage من Mockito

Argument(s) are different! Wanted:
type1.someMethod();
-> at xxx
Actual invocation has different arguments:
type1.someMethod();
-> at xxx
هل كانت مفيدة؟

المحلول

هذا قليلاً من الامتداد ، ولكن تحقق من تطبيقات tostring الخاصة بك. لقد واجهت بعض سيناريوهات اختبار الوحدة المهيجة حيث بدا أن المتوقع والملاحظة هو نفسه من وجهة نظر اختبار الوحدة عندما تكون مختلفة في الواقع. في النهاية ، كان هناك اختلاف في tostring الذي تسبب لي في الاعتقاد بوجود تشابه عندما لم يكن هناك في الواقع.

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