Hi,
I've just started to use camel, and I'm trying to understand and create some
unit tests, but i don t understand how Mok is working or how unit tests
should look like (i've read the tutorials and documentation about camel
test).
What do i mean by not understanging is:
i have a defined route:
=========================
public class MyRouteBuilder extends RouteBuilder{
.....
@Override
public void configure() throws Exception {
from("jms:queue:inputQueueName").process(new Processor()
{.........}).to("jms:queue:outputputQueueName");
======================
in all the examples found , a new Class extends CamelTestSupport {
and also creating the rounting inside, so it can be moked:
===============
@Override
protected RouteBuilder createRouteBuilder() {
return new RouteBuilder() {
public void configure() {
from("direct:start").filter(header("foo").isEqualTo("bar")).to("mock:result");
}
};
}
================
so the route is defined exactly here, so it can be moked and get the
endpoints.
BUT, what about to test an allready created route?
I can't say .to("mock:result");
i suposed it should be:
=========
@Override
protected RouteBuilder createRouteBuilder() {
return new MyRouteBuilder();
}
==========
So my questions are:
1. how can i test a route? (i can't define the rules of routing inside the
test class by overwriting the createRouteBuilder() , because i already have
the route implementation => duplicate code)
2. Should my MyRouteBuilder have specific methods implemented so i can mok
it after in the test class?
3. is it there another way to test the output messages of a router besides
Mok?
- I did it in one way, but i think is not the "correct" one:
- In a Test Class, I've created a Connection factory to a jms
queue and creating a context
- I've added the desired route to be tested into the context
( context.addRoute(new MyRoutebuilder()))
- Started the context (so my router is running in
"backgroud" let s say)
- i've put a message into the input queue of the router with
another test Router (from file to queue)
- i've taken the message from output queue of the router with
a test router (From message to file)
- compare the file with an expected one.
But this is bad as concept for unit tests (let s say Junits), i think.
4. Do you a link, or something to a generic test example of a camel route?
PS: Sorry if the are stupid questions
Thanks,
Vlad
--
View this message in context:
http://camel.465427.n5.nabble.com/Camel-testing-tp5736444.html
Sent from the Camel - Users mailing list archive at Nabble.com.