Tutorial Camel : Testing

Le but de ce post de blog est d'introduire la création d'un test unitaire en empruntant le mécanisme offert par Apache Camel.

Apache Camel nous offre 5 mécanismes( Camel Test, Spring Testing, Blueprint Testing, Guice et Camel TestNG) afin de faciliter les codes de test. Et le tableau ci-dessous s'agit de 3 mécanismes principaux qui sont souvent employés pendant le développement. Avant de rédiger le test unitaire, il faudra opter le bon choix selon besoin.

Dans cette démo, on va écrire le test unitaire en TestNG et logiquement, on prend le camel-testng pour présenter comment créer un simple test unitaire.

Étape 1 : Ajouter la dépendance de TestNG

 <dependency>
	<groupId>org.testng</groupId>
	<artifactId>com.springsource.org.testng</artifactId>
        <version>5.12.1</version>
	<scope>test</scope>
 </dependency>

Étape 2: Ajouter la dépendence de Camel TestNG

<dependency>
           <groupId>org.apache.camel</groupId>
           <artifactId>camel-testng</artifactId>
           <version>2.11.0</version>
           <scope>test</scope>
</dependency>

Étape 3 : Rédiger le premier test unitaire
Le test unitaire devra étendre la classe « CamelSpringTestSupport » qui possède les méthodes afin d'initialiser le context du Spring et de fabriquer les routes du test.

/**
 * Camel Test Demo
 * 
 * @author laiyin
 * @version $Revision 1.0 $ $Date 21 nov 2013$
 */
public class DemoCamelTest extends CamelTestSupport
{
	/**
	 * Définir et initialiser les routes du test.
	 */
	@Override
        protected RouteBuilder createRouteBuilder() throws Exception
	{
            return new RouteBuilder()
	      {
	          public void configure()
	           {
	              from("direct:in.test")
	              .to("mock:endpoint.test")
	              .end();
	            }
	        };
	}
	
	/**
	 * Tester d'envoyer un message "Hello World" vers le mock destinataire.
	 * 
	 * @throws InterruptedException l'exception.
	 */
	@Test
	public void testRoute() throws InterruptedException
	{
	     //initialiser le mock destinataire.
	     final MockEndpoint mockEndPoint = getMockEndpoint("mock:endpoint.test");
	     //le destinataire devra recevoir qu'un seul message.
	     mockEndPoint.expectedMessageCount(1);
	     //le corps du message devra être "Hello World"
	     mockEndPoint.expectedBodiesReceived("Hello World");
	     template.sendBody("direct:in.test", "Hello World");
	     //vérifier le résultat.
	     mockEndPoint.assertIsSatisfied();
	}
}

Résultat du test unitaire :

Référence : http://camel.apache.org/testing.html

Un commentaire

  1. Modifiez ce script sql si vous voulez ajouter d’autres informations à votre commande.
    Pour forcer la réinstallation d’un module, supprimer la ligne correspondante dans la table « core_resource ».

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Captcha *

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.