Ecrire des tests pour vérifier reçu le msg dans listener jms (Spring-Boot)
Je veux écrire de test pour quelque chose comme ci-dessous;
- Il y a un auditeur a appelé
state-info-1
danssrc/main
. - Il n'quelques modifications à tout message qu'il reçoit et publie un nouveau message sur activemq sujet
state-info-2
. - Je vais construire un mannequin de message et publier sur activemq sujet
state-info-1
. - Enfin vérifier que le message reçu sur le sujet
state-info-2
est comme je m'y attendais.
Mes Auditeurs sont comme;
@JmsListener(destination = "state-info-1", containerFactory = "connFactory")
public void receiveMessage(Message payload) {
//Do Stuff and Publish to state-info-2
}
Est-il possible que je peux écrire de test pour cela? Ou je dois le faire d'une autre manière?
Aussi, j'ai regardé ce : https://github.com/spring-projects/spring-boot/blob/master/spring-boot-samples/spring-boot-sample-activemq/src/test/java/sample/activemq/SampleActiveMqTests.java
Mais ce n'est pas ce que j'attends.
Toute aide ou de les pousser dans la bonne direction sera suffisant.
Je vous remercie pour votre temps.
OriginalL'auteur Raj | 2017-03-15
Vous devez vous connecter pour publier un commentaire.
et
Queues
, ne fonctionne pas pour activemqTopics
que j'utilise. Ne fonctionne pas lorsque j'ai propriétésspring.jms.pub-sub-domain=true
. Obtientnull
.C'est juste la façon dont les sujets JMS travail - par défaut, les abonnements ne sont pas durables et seuls les consommateurs qui sont actives à la fois, le message est publié le message. Vous devez attendre pour l'auditeur de s'abonner avant de les envoyer, ou de faire l'abonnement durable (ce qui signifie que vous n'avez qu'à attendre la première fois que vous exécutez le test).
de se! Fait attendre et il fonctionne très bien. Merci encore 🙂
Il est généralement préférable de se poser une nouvelle question, plutôt que de faire des commentaires sur une ancienne cette réponse décrit une technique que nous avons mise en œuvre pour
@RabbitListener
et explique comment il peut être mis en œuvre pour@KafkaListener
. Les mêmes techniques devrait s'appliquer à JMS trop via un customJmsListenerAnnotationBeanPostProcessor
.Pour JUnit 5 remplacer les
RunWith
la règle, avec l'extension@ExtendWith(SpringExtension.class)
(et d'exclure les junit4 dep de org.springframework.démarrage:printemps-amorçage-starter-test)OriginalL'auteur Gary Russell