Remplacer le haricot de printemps dans un contexte avec une version fictive d'un autre contexte
Je suis en train d'écrire un test d'intégration où un contexte d'application xml est initialisé lors du démarrage. Il existe plusieurs méthodes d'essai de la classe de test qui rendent l'utilisation d'un bean 'X'(déjà défini dans le fichier xml). Mon besoin est pour se moquer de haricot X uniquement pour les méthodes d'essai.
À l'intérieur d'une méthode de test: j'ai essayé de créer une application séparée du contexte à l'aide ClassPathXMLApplicationContext avec seulement la simulation de haricot 'M'.
Maintenant, j'ai deux Contextes applicatifs (AC):
1. On a créé au cours de cas de test de démarrage (qui contient les haricots X) et
2. On a créé à l'aide de ClassPathXMLApplicationContext à l'intérieur de la méthode d'essai (qui a la fantaisie de haricots M).
Je veux remplacer le réel d'haricot définition de " X "à l'intérieur de l'AC:1, en utilisant le prototype de haricots définition de" M " de AC:2.
Quelqu'un peut-il jeter un peu de lumière sur cette s'il vous plaît?
source d'informationauteur Ram
Vous devez vous connecter pour publier un commentaire.
Il n'y a pas un moyen de remplacer un haricot dans un rafraîchi
ApplicationContext
sauf si vous fermez et d'actualiser à nouveau.De l'émuler, l'approche la plus répandue consiste à utiliser un
Proxy
de la fève que vous souhaitez remplacer et changer la cible au moment de l'exécution.Vous pouvez le faire facilement en utilisant le cadre de l'aop des cours de soutien en:
Vous pouvez :
et je suis sûr qu'il y a encore plus d'options.
Créer un testApplicationContext avec
puis charger ce test de contexte de l'application dans votre cas de test. Vous pouvez maintenant obtenir la maquette de la fève de contexte de l'application et de le passer là où nécessaire.