ฉันต้องการฉีดวัตถุจำลอง Mockito ลงในถั่ว Spring (3+) เพื่อวัตถุประสงค์ในการทดสอบหน่วยกับ JUnit ขณะนี้การพึ่งพาถั่วของฉันถูกฉีดโดยใช้@Autowired
คำอธิบายประกอบในฟิลด์สมาชิกส่วนตัว
ฉันได้พิจารณาการใช้ReflectionTestUtils.setField
แต่อินสแตนซ์ bean ที่ฉันต้องการฉีดเป็นจริงพร็อกซีและดังนั้นจึงไม่ประกาศเขตข้อมูลสมาชิกส่วนตัวของคลาสเป้าหมาย ฉันไม่ต้องการสร้าง setter สาธารณะเพื่อการพึ่งพาเนื่องจากฉันจะทำการปรับเปลี่ยนอินเตอร์เฟสของฉันอย่างหมดจดเพื่อวัตถุประสงค์ในการทดสอบ
ฉันได้ทำตามคำแนะนำของชุมชน Spring แล้ว แต่การเยาะเย้ยไม่ได้เกิดขึ้นและการเดินสายอัตโนมัติล้มเหลว:
<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
ค่าเป็นสิ่งที่ไม่ถูกต้องจะไม่มีข้อผิดพลาดเกิดขึ้นเมื่อเริ่มต้นบริบทของแอปพลิเคชัน