আমি জুনিটের সাথে ইউনিট পরীক্ষার উদ্দেশ্যে একটি মকিতো মক বস্তুকে একটি স্প্রিং (3+) শিমের মধ্যে ইনজেকশন করতে চাই। আমার শিম নির্ভরতা বর্তমানে @Autowired
বেসরকারী সদস্য ক্ষেত্রগুলিতে টিকাটি ব্যবহার করে ইনজেকশন করা হয় ।
আমি ব্যবহারের বিষয়টি বিবেচনা করেছি ReflectionTestUtils.setField
তবে শিমের দৃষ্টান্তটি যে আমি ইনজেকশন করতে চাই তা আসলে প্রক্সি এবং তাই লক্ষ্য শ্রেণীর ব্যক্তিগত সদস্য ক্ষেত্রগুলি ঘোষণা করে না। আমি নির্ভরতার জন্য একটি পাবলিক সেটার তৈরি করতে চাই না কারণ আমি পরীক্ষার উদ্দেশ্যে বিশুদ্ধরূপে আমার ইন্টারফেসটি সংশোধন করব।
আমি স্প্রিং সম্প্রদায় দ্বারা প্রদত্ত কিছু পরামর্শ অনুসরণ করেছি তবে উপহাসটি তৈরি হয় না এবং অটো-ওয়্যারিং ব্যর্থ হয়:
<bean id="dao" class="org.mockito.Mockito" factory-method="mock">
<constructor-arg value="com.package.Dao" />
</bean>
আমি বর্তমানে যে ত্রুটিটির মুখোমুখি হয়েছি তা হ'ল:
...
Caused by: org...NoSuchBeanDefinitionException:
No matching bean of type [com.package.Dao] found for dependency:
expected at least 1 bean which qualifies as autowire candidate for this dependency.
Dependency annotations: {
@org...Autowired(required=true),
@org...Qualifier(value=dao)
}
at org...DefaultListableBeanFactory.raiseNoSuchBeanDefinitionException(D...y.java:901)
at org...DefaultListableBeanFactory.doResolveDependency(D...y.java:770)
যদি আমি constructor-arg
মানটিকে অকার্যকর কিছুতে সেট করি তবে অ্যাপ্লিকেশন প্রসঙ্গটি শুরু করার সময় কোনও ত্রুটি ঘটবে না।