Quantcast
Channel: Apache Timeline
Viewing all articles
Browse latest Browse all 5648

Unit testing each route in a large camel context

$
0
0
Riders,

I have a came context like the below one. I am going to do unit testing for
each and every route. I am still wondering why no body has asked this
question early. ( May be I didnt find it )
How can I do unit testing for each and every route ?

Camel context:

<camelContext id="Sample-Context">

<route id="Start">
<from uri=direct:A />
<to uri=direct:B />
</route>

<route id="Hop1">
<from uri=direct:B />
<to uri=direct:C />
</route>

<route id="Hop2">
<from uri=direct:C />
<to uri=direct:D />
</route>

<route id="Stop">
<from uri=direct:D />
<to uri=direct:E />
</route>

</camelContext>

My current test strategy:

1. I have four different camelcontext xml's under my test resources
2. I have created four different test classes using JUnit ( Supported by
camel)
3. If I take one route, I will mock the direct:B to mock:direct:B.
4. Apply assertions to the mock endpoints.

Alternative test strategy:

1. Instead of creating four different XML's, I can just keep one camel
context xml and add property placeholders.
2. By changing the endpoints in the property placeholers, so that I can
logically disable the remaining routes. Because direct endpoints cannot have
more than one consumer and mock endpoint cannot have consumer at all.

But of all this, Is there any other simplied way to do the testing ? For
large projects having large number of routes, Is there a way I can test
individual routes from the same camelcontext files ? Instead of having
multiple xml's.

I will great appreciate your help. Also I am planning to develop an article
based on this conversation. Please drop in your ideas and comments.

Camel is a wonderful framework with wonderful test endpoint like Mock. Mock
is very powerful in terms of asssertions, but wondering what are the other
ways to utilize it well in large camel context.

Cheers,
Guru
gnanaguru.com

Viewing all articles
Browse latest Browse all 5648

Trending Articles