Saya ingin menyuntikkan objek mockito mock ke dalam pegas (3+) kacang untuk keperluan pengujian unit dengan JUnit. Ketergantungan kacang saya saat ini disuntikkan dengan menggunakan @Autowired
anotasi pada bidang anggota pribadi.
Saya telah mempertimbangkan untuk menggunakan ReflectionTestUtils.setField
tetapi contoh kacang yang ingin saya suntikkan sebenarnya adalah proxy dan karenanya tidak menyatakan bidang anggota pribadi dari kelas target. Saya tidak ingin membuat setter publik untuk dependensi karena saya kemudian akan memodifikasi antarmuka saya murni untuk keperluan pengujian.
Saya telah mengikuti beberapa saran yang diberikan oleh komunitas Spring tetapi mock tidak dibuat dan kabel otomatis gagal:
<bean id="dao" class="org.mockito.Mockito" factory-method="mock">
<constructor-arg value="com.package.Dao" />
</bean>
Kesalahan yang saya temui saat ini adalah sebagai berikut:
...
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)
Jika saya menetapkan constructor-arg
nilai ke sesuatu yang tidak valid tidak ada kesalahan terjadi ketika memulai konteks aplikasi.