L'injection de Mockito se moque d'une source de haricot

Je voudrais injecter un Mockito maquette d'un objet dans un Ressort (3+) de haricots pour les fins de tests unitaires avec JUnit. Mon haricot dépendances sont actuellement injectée à l'aide de la @Autowired annotation privé, membre de champs.

J'ai pensé à utiliser ReflectionTestUtils.setField mais l'exemple d'haricot que je tiens à injecter est en fait un proxy et donc de ne pas déclarer le privé, les champs des membres de la classe cible. Je ne souhaite pas créer un public setter de la dépendance que je vais modifier mon interface est purement à des fins de test.

J'ai suivi quelques conseils donné par le Printemps de la communauté, mais la maquette est pas créé et l'auto-câblage échoue:

<bean id="dao" class="org.mockito.Mockito" factory-method="mock">
    <constructor-arg value="com.package.Dao" />
</bean>

L'erreur que je rencontre actuellement est comme suit:

...
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)

Si j'ai mis le constructor-arg de la valeur à quelque chose non valide aucune erreur ne se produit lors du démarrage de l'application de contexte.

  • Veuillez jeter un oeil à cette petite créature: bitbucket.org/kubek2k/springockito/wiki/Home
  • C'est très propre approche - je l'aime!
  • Vous m'avez eu à Springockito-annotations.
  • Oubliez tout le reste, springockito-annotations est quelque chose que vous souhaitez utiliser. La bonne chose est que vous pouvez avoir un non-complet de configuration XML (omettre les simulacres) et les annotations va remplir les blancs (les simulacres). Puis juste @Autowire tout.
  • Malheureusement, Springockito ne vous laisse pas saisir facilement le WebApplicationContext (vous pouvez le faire si vous êtes en train de rédiger un test d'intégration avec @WebAppConfiguation), tel que documenté par tihs question: bitbucket.org/kubek2k/springockito/issue/12/... Vous avez probablement juste eu à appeler le mock() méthode vous-même.
  • Méfiez-vous de bitbucket.org/kubek2k/springockito/issue/37/...
  • Pour ceux qui utilisent le ressort 4.*, à compter de janvier 2015, cela ne semble pas fonctionner avec la dernière version du printemps mockito version et le projet semble être inactif.
  • vos liens sont cassés.. pourriez vous s'il vous plaît mettre à jour?

InformationsquelleAutor teabot | 2010-03-16