Simuler ou simuler Message Queue (JMS)
Il y a un message(texte), le format et le contenu que je sais avec certitude.
Pour l'instant,la classe en Java,qui analyse et lit ce message à partir d'un fichier,est mis en œuvre.
Dans le monde réel, ce message va venir à partir d'un Message de la File d'attente.
Pour l'instant je doit simuler, de se moquer ou de générer des Messages de la File d'attente sur mon PC local à des fins de test.
Java spec(java jms):
JMS provider: A messaging system that implements the JMS specification.
JMS clients: Java applications that send and receive messages.
Messages: Objects that are used to communicate information between JMS clients.
Concernant cette spécification, j'ai besoin de fournisseur JMS.
Client JMS-c'est ma classe qui lit le message.
Message lui-même, je le sais.
Donc, la question est de savoir comment commencer un message de la file d'attente?
Comment puis-je simuler programmaticaly à partir du code Java? Puis-je en moquer en quelque sorte?
Grâce.
source d'informationauteur sergionni
Vous devez vous connecter pour publier un commentaire.
Si vous utilisez Spring Integrationvous pouvez le faire assez facilement. Il a un très de base, abrégé en "Canal" de la mise en œuvre. Vous pouvez créer et tester vos producteurs et les consommateurs, et lorsque vous êtes prêt à passer à une étape plus loin, vous venez de spécifier un JMS carte sur le dessus de votre Canal.
Généralement c'est une mauvaise pratique pour se moquer ou de simuler un système externe, telles que JMS. Une meilleure idée serait de résumé de votre logique en une autonome de haricot, de mettre en œuvre une délégation de la couche qui permettrait de combler JMS avec votre bean. Avec une telle conception, vous pouvez tester vos haricots dans l'isolement de JMS et puis avoir un système de test qui permettrait de tester l'ensemble de l'intégration avec de vrais JMS système.
Comme pour les processus de JMS, vous pouvez regarder SomnifugiJMS.
Pour tester une application dans l'isolement lors de la production réelle fournisseur JMS n'est pas disponible, vous pouvez utiliser l'un des:
JMS maquette: Lors des tests de vos applications, vous pouvez simuler le non-existant dépendances à l'aide test en double. Vous pouvez utiliser un JMS maquette qui permettra de simuler le comportement d'un véritable fournisseur JMS. API outils de simulation va vous permettre de créer JMS se moque (il suffit de choisir un outil prend en charge JMS, par exemple Le Trafic Parrot). À l'aide d'un JMS se moquer de vous permettre un niveau élevé de flexibilité en cours de test. Vous serez en mesure de tester typique de la production-comme des scénarios de tests, mais aussi des situations hypothétiques par la mise en place de votre maquette pour revenir presque n'importe quel type de message. Vous serez également capable de simuler différents types d'erreurs, ce qui est souvent difficile à faire avec de vrais fournisseurs JMS. Jetez un oeil à cette vidéo d'introduction à JMS la virtualisation des services pour les ActiveMq (virtualisation des services est un autre nom pour une maquette) ou ce un pour IBM MQ. Remarque, ces vidéos sont de Trafic Parrot, mais le principe décrit, il va s'appliquer à n'importe quel outil que vous choisissez.
Fournisseur JMS instance de test: Vous pouvez exécuter un fournisseur JMS sur votre ordinateur portable ou dans l'un de vos environnements de test et de connecter votre application à la place de la production du fournisseur. Lorsque vous utilisez open source fournisseurs dans la production comme ActiveMQ ou RabbitMQ, il devrait être facile à exécuter l'un d'eux sur votre ordinateur portable, car ils sont légers et gratuit. Pour IBM Websphere MQ, vous pouvez utiliser le logiciel gratuit IBM MQ pour les Développeurs.
JMS classe maquette: Vous pouvez utiliser Mockito dans les tests unitaires, à se moquer des interactions avec les classes de JMS. Cette solution est livré avec tous les compromis de tests unitaires. Pour plus d'informations sur ces voir test de la pyramide. Si vous souhaitez boîte noire test de votre application, utilisez l'une des solutions que j'ai décrit ci-dessus.
Généralement je suis d'accord avec Eugène Kuleshov. Mais si vous avez encore besoin de ce genre de moqueries, je vous suggère d'utiliser BlckingQueue à partir de java.util.concurent paquet. Je pense que c'est pas un gros problème pour l'envelopper avec javax.jms.File d'attente de l'interface. BTW c'est une bonne idée pour un certain type de projet open-source.