JUnit ile birim testi için bir Mockito sahte nesne bir Bahar (3+) fasulye içine enjekte etmek istiyorum. Fasulye bağımlılıklarım şu anda @Autowired
özel üye alanlarına ek açıklama kullanılarak enjekte ediliyor .
Ben kullanmayı düşündüm ReflectionTestUtils.setField
ama enjekte etmek istiyorum fasulye örneği aslında bir proxy ve bu nedenle hedef sınıfın özel üye alanlarını bildirmez. Bağımlılığa genel bir ayarlayıcı oluşturmak istemiyorum çünkü daha sonra tamamen test amacıyla arayüzümü değiştireceğim.
Bahar topluluğu tarafından verilen bazı tavsiyelere uydum , ancak alay oluşturulmaz ve otomatik kablolama başarısız olur:
<bean id="dao" class="org.mockito.Mockito" factory-method="mock">
<constructor-arg value="com.package.Dao" />
</bean>
Şu anda karşılaştığım hata aşağıdaki gibidir:
...
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
Değeri geçersiz bir şeye ayarlarsam , uygulama bağlamını başlatırken hiçbir hata oluşmaz.