টমাসজ নুরকিউইচের উত্তরটি পুরো গল্পটি না বলে দেখা যাচ্ছে!
এনবি মকিতো সংস্করণ: 1.10.19।
আমি অনেকটা মকিতো নবাগত, সুতরাং নিম্নলিখিত আচরণটি ব্যাখ্যা করতে পারি না: যদি এই উত্তরটির উন্নতি করতে পারে এমন কোনও বিশেষজ্ঞের বাইরে থাকেন তবে দয়া করে নির্দ্বিধায় অনুভব করুন।
এখানে প্রশ্নে পদ্ধতিটি getContentStringValue
, নয় final
এবং নয় static
।
এই লাইন করে মূল পদ্ধতি কল getContentStringValue
:
doReturn( "dummy" ).when( im ).getContentStringValue( anyInt(), isA( ScoreDoc.class ));
এই লাইনটি মূল পদ্ধতিটিকে কল করে নাgetContentStringValue
:
doReturn( "dummy" ).when( im ).getContentStringValue( anyInt(), any( ScoreDoc.class ));
যে কারণে আমি উত্তর দিতে পারছি না, isA()
উদ্দেশ্যে উদ্দেশ্যমূলক (?) "পদ্ধতিটি কল করবেন না" ব্যবহারটি doReturn
ব্যর্থ হওয়ার কারণ ঘটায় ।
আসুন এখানে জড়িত পদ্ধতি স্বাক্ষরগুলি দেখুন: এগুলি উভয়েরই static
পদ্ধতি Matchers
। উভয়কেই জাভাদোক ফিরে আসার কথা বলেছিলেন null
, যা আপনার নিজের মাথা নিজেই পাওয়া কিছুটা কঠিন। সম্ভবত Class
পরামিতি হিসাবে অবজেক্টটি পাস করা হয় তবে পরীক্ষা হয় তবে ফলাফল কখনই গণনা করা হয় না বা বাতিল হয় না। প্রদত্ত যে null
কোন ক্লাসের জন্য স্ট্যান্ড করতে পারবেন এবং আপনি বলা হবে না ব্যঙ্গ পদ্ধতি জন্য প্রত্যাশী হয়, পারে স্বাক্ষর যে isA( ... )
এবং any( ... )
ঠিক ফিরে null
একটি জেনেরিক প্যারামিটার বদলে * <T>
?
যাই হোক:
public static <T> T isA(java.lang.Class<T> clazz)
public static <T> T any(java.lang.Class<T> clazz)
এপিআই ডকুমেন্টেশন এ সম্পর্কে কোনও ক্লু দেয় না। এটি বলে মনে হয় যে এই ধরনের "পদ্ধতিটিকে কল করবেন না" আচরণের প্রয়োজন "খুব বিরল"। ব্যক্তিগতভাবে আমি এই কৌশলটি সর্বদা ব্যবহার করি : সাধারণত আমি দেখতে পাই যে উপহাসের মধ্যে কয়েকটি লাইন জড়িত থাকে যা "দৃশ্য সেট করে" ... তারপরে এমন কোনও পদ্ধতি কল করে যার পরে মক প্রসঙ্গে আপনি দৃশ্যের বাইরে চলে যান ... ... এবং আপনি দৃশ্যাবলী এবং প্রপস স্থাপন করার সময় আপনি যা চান সর্বশেষ জিনিসটি হ'ল অভিনেতাদের মঞ্চে বাম দিকে প্রবেশ করা এবং তাদের হৃদয়কে অভিনয় করা শুরু করা ...
তবে এটি আমার বেতন গ্রেডের বাইরে ... আমি যে কোনও পাসকারী মকিতো উচ্চ পুরোহিতের কাছ থেকে ব্যাখ্যাগুলি আমন্ত্রণ জানাচ্ছি ...
* "জেনেরিক প্যারামিটার" কি সঠিক শব্দ?