Tengo una serie de componentes "interconectados" que se comunican a través de las colas de mensajes de ActiveMQ. Cada componente usa Camel para tratar cada una de estas colas como un Endpoint. Cada componente utiliza el mismo patrón básico:Prueba Camel con MockEndpoints
donde cada componente consume mensajes fuera de una cola de entrada, procesa el mensaje (s), y luego coloca 1+ mensajes en una cola de salida/salida. La cola de "salida" se convierte en la cola de "entrada" para el siguiente componente de la cadena. Bastante básico.
Ahora estoy tratando de arremangarme las mangas y proporcionar pruebas unitarias para cada componente utilizando el MockEndpoints
proporcionado por la API de prueba de Camel. He estado vertiendo sobre los javadocs y los pocos ejemplos en el sitio web de Camel, pero tengo dificultades para conectar todos los puntos.
Me parece que, para cada componente, una parte de mi unidad de pruebas va a querer llevar a cabo las siguientes tres cosas:
- prueba para ver si hay mensajes en espera en un determinado "de entrada "cola de
- Tire esos mensajes hacia abajo y procesarlas
- impulso nuevos mensajes a una 'cola de salida' y verificar que lo hicieron no
que ser Lieve Necesito crear MockEndpoints
para cada cola de este modo:
@EndpointInject(uri = "mock:inputQueue")
protected MockEndpoint intputQueue;
@EndpointInject(uri = "mock:outputQueue")
protected MockEndpoint outputQueue;
Así que ahora, en mis métodos de prueba JUnit, puedo configurar las expectativas e interactuar con estos criterios de valoración:
@Test
public final void processMethodShouldSendToOutputQueue()
{
Component comp = new Component();
comp.process();
outputQueue.assertIsSatisfied();
}
estoy simplemente no entender cómo cablear todo correctamente:
- ¿Cómo conecto
comp
a lainputQueue
youtputQueue
MockEndpoints? - Para cada
MockEndpoint
, ¿cómo configuro las expectativas para queassertIsSatisfied()
verifique que un mensaje esté presente dentro de una cola en particular, o que una cola en particular contenga mensajes?
http: // stackoverflow. com/questions/5664331/how-to-unit-test-production-routes-in-apache-camel –