23
MockitoモックをSpring Beanに注入する
JUnitでのユニットテストの目的で、MockitoモックオブジェクトをSpring(3+)Beanに挿入したいと思います。現在、私のBeanの依存関係は@Autowired、プライベートメンバーフィールドのアノテーションを使用して注入されています。 使用を検討しましたReflectionTestUtils.setFieldが、注入したいBeanインスタンスは実際にはプロキシであるため、ターゲットクラスのプライベートメンバーフィールドを宣言していません。テストのためだけにインターフェイスを変更するため、依存関係へのパブリックセッターを作成したくありません。 私は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値を無効な値に設定しても、アプリケーションコンテキストの起動時にエラーは発生しません。