@PostConstruct pas appelé lors de l'utilisation de Mockito @Spy annotation
Je suis à l'aide de Printemps, TestNG et Mockito cadres. Je suis en train d'écrire un test unitaire pour une classe Un qui a une dépendance de la classe B. Classe B a une méthode annotée avec @PostConstruct
.
Lors de l'écriture de scénario de test Unitaire à l'aide de TestNG pour la classe Un, je suis en annotant une instance de la classe B avec Mockito @Spy
dans la classe de test. Je peux voir l'exemple de B être correctement créée par Mockito. Mais pourquoi @PostConstruct
code n'est pas appelé quand Mockito est en cours de traitement @Spy
annotation?
Donc, ce que j'ai fait est que j'ai déplacé le code à l'intérieur @PostConstruct
à la constructeur.
Est-il possible de faire Mockito, l'exécution de toute "Post-traitement" de la méthode lors du traitement @Spy
annotation?
Reconnaissant de toute aide sur ce.
OriginalL'auteur javalearner | 2014-02-22
Vous devez vous connecter pour publier un commentaire.
Non, il n'y en a pas. PostConstruct est un Printemps concept. Mais rien ne vous interdit de l'appeler dans votre méthode de configuration:
Dans PostConstruct, vous avez accès à toutes les dépendances injecté de la fève et de toutes les propriétés définies dans le bean par le conteneur, après le haricot a été construit. Dans le constructeur, vous n'avez pas.
Il est javax.annotation.PostConstruct. Donc ce n'est pas un Printemps concept.
ce n'est pas stricto sensu un Printemps concept, mais c'est une annotation qui est utilisé par l'injection de dépendance de cadre utilisé, dans ce cas, c'est le Printemps. Le point est que Mockito ne se soucie pas de cette annotation.
OriginalL'auteur JB Nizet
J'ai résolu ce problème en remplaçant la méthode étiquetés avec @PostConstruct par le constructeur de la classe étiquetés @Inject.
Les deux solutions en faire de même et sont pris en charge par Mockito.
Il est nécessaire de mettre de la dépendance:
Avant:
Après:
OriginalL'auteur leon cio