Concordion - Première application

Commençons à programmer avec Concordion. Avant de commencer à écrire votre premier exemple à l'aide de Concordion, vous devez vous assurer que vous avez correctement configuré votre environnement Concordion, comme expliqué dans Concordion - Tutoriel de configuration de l'environnement . Nous supposons également que vous avez une petite connaissance pratique d'Eclipse IDE.

Alors passons à la rédaction d'une simple application Concordion qui imprimera le test d'acceptation suivant -

Example
When Robert logs in the system, a greeting "Hello Robert!" is displayed.

Étape 1 - Créer un projet Java

La première étape consiste à créer un projet Java simple à l'aide de l'IDE Eclipse. Suivez l'optionFile → New → Project et enfin sélectionner Java Projectassistant dans la liste des assistants. Maintenant, nommez votre projet commeConcordion en utilisant la fenêtre de l'assistant comme suit -

Une fois votre projet créé avec succès, vous aurez le contenu suivant dans votre Project Explorer -

Étape 2 - Ajouter les bibliothèques requises

Ajoutons la concordion et ses dépendances dans notre projet. Pour ce faire, faites un clic droit sur le nom de votre projetconcordion puis suivez les options disponibles dans le menu contextuel: Build Path → Configure Build Path pour afficher la fenêtre Java Build Path comme suit -

Maintenant, utilisez Add External JARs bouton disponible sous Libraries pour ajouter le JAR principal suivant à partir du dossier Concordion.

  • concordion-1.5.1
  • hamcrest-core-1.3
  • junit-4.12
  • ognl-2.6.9
  • xom-1.2.5

Étape 3 - Créer des fichiers source

Créons maintenant des fichiers source réels sous le concordionprojet. Tout d'abord, nous devons créer un package appelécom.tutorialspoint. Pour ce faire, faites un clic droit sursrc dans la section de l'explorateur de paquets et suivez l'option: New → Package.

Ensuite, nous allons créer System .java sous le package com.tutorialspoint.

Voici le contenu de System.java fichier -

package com.tutorialspoint;

public class System {
   public String getGreeting(String userName){
      return "Hello " + userName + "!";
   }
}

Étape 4 - Créer des fichiers de spécifications

Maintenant, créons des fichiers de spécifications réels sous le concordionprojet. Tout d'abord, nous devons créer un nouveau dossier source nomméspecs. Ce dossier contiendra des fichiers de spécifications tels que JUnitFixture ou test runner et des fichiers html qui sont des spécifications. Nous devons maintenant créer un package appeléspecs.tutorialspoint. Pour ce faire, faites un clic droit surspec dans la section de l'explorateur de paquets et suivez l'option: New → Package.

Ensuite, nous allons créer System.html et SystemFixture.javafichiers sous le package specs.tutorialspoint. Par la suite, nous ajouteronsconcordion.css sous le dossier source des spécifications.

Voici le contenu du System.html fichier -

<html xmlns:concordion = "http://www.concordion.org/2007/concordion">
   <head>
      <link href = "../concordion.css" rel = "stylesheet" type="text/css" />
   </head>

   <body>
      <h1>System Specifications</h1>
      <p>We are building specifications for our online order tracking application.</p>
      <p>Following is the requirement to show greeting to logged in user:</p>
      <div class = "example">      
         <h3>Example</h3>
         <p>When <span concordion:set = "#userName">Robert</span> 
            logs in the system, a greeting "<span concordion:assertEquals = "getGreeting(#userName)">
            Hello Robert!</span>" is displayed.</p>
      </div>
   </body>

</html>

Voici le contenu du SystemFixture.java fichier -

package specs.tutorialspoint;

import com.tutorialspoint.System;
import org.concordion.integration.junit4.ConcordionRunner;
import org.junit.runner.RunWith;

@RunWith(ConcordionRunner.class)

public class SystemFixture {

   System system = new System();
	
   public String getGreeting(String userName){
      return system.getGreeting(userName);
   }
}

Voici le contenu du concordion.css fichier -

* {
   font-family: Arial;
}

body {
   padding: 32px;  
}

pre {
   padding: 6px 28px 6px 28px;
   background-color: #E8EEF7;
}

pre, pre *, code, code *, kbd {
   font-family: Courier New, Courier;
   font-size: 10pt;
}

h1, h1 * {
   font-size: 24pt;	
}

p, td, th, li, .breadcrumbs {
   font-size: 10pt;
}

p, li {
   line-height: 140%;
}

table {
   border-collapse: collapse;
   empty-cells: show;
   margin: 8px 0px 8px 0px;
}

th, td {
   border: 1px solid black;
   padding: 3px;
}

td {
   background-color: white;
   vertical-align: top;
}

th {
   background-color: #C3D9FF;
}

li {
   margin-top: 6px;
   margin-bottom: 6px; 
}

.example {
   padding: 6px 16px 6px 16px;
   border: 1px solid #D7D7D7;
   margin: 6px 0px 28px 0px;
   background-color: #F7F7F7;
}

.example h3 {
   margin-top: 8px;
   margin-bottom: 8px;
   font-size: 12pt;
}

.special {
  font-style: italic;
}

.idea {
  font-size: 9pt;
  color: #888;
  font-style: italic;	
}

.tight li {
  margin-top: 1px;
  margin-bottom: 1px; 
}

.commentary {
  float: right;
  width: 200px;
  background-color: #ffffd0;
  padding:8px;
  border: 3px solid #eeeeb0;	 
  margin: 10px 0px 10px 10px;	 
}

.commentary, .commentary * {
  font-size: 8pt;
}

Il y a deux points importants à noter concernant le fichier html de spécification et le banc d'essai -

  • System.html est le fichier html de spécification qui utilise l'espace de noms de concordion.

<html xmlns:concordion="http://www.concordion.org/2007/concordion">
  • System.html utilise la commande concordion: set pour définir une valeur de variables temporaires userName sur Robert. Ici, userName est le paramètre à passer à la méthode getGreeting de System fixture.

When <span concordion:set="#userName">Robert</span> logs in the system
  • System.html utilise la commande concordion: assertEquals pour vérifier que la sortie de la fonction getGreeting (userName) est Hello Robert !.

a greeting "<span concordion:assertEquals="getGreeting(#userName)">
Hello Robert!</span>" is displayed.
  • SystemFixture est un appareil de test JUnit annoté avec ConcordionRunner.class.

@RunWith(ConcordionRunner.class)
public class SystemFixture {}
  • SystemFixture a une méthode getGreeting qui renvoie des salutations à l'utilisateur.

public String getGreeting(String userName){
   return system.getGreeting(userName);
}

Étape 5 - Exécution du programme

Cliquez avec le bouton droit sur la zone de contenu de SystemFixture et sélectionnez Run as > JUnit Test Case. Vous verrez la sortie suivante avec succès junit.

C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp\concordion\specs\tutorialspoint\System.html
Successes: 1, Failures: 0

System.html est la sortie du test de Concordion.

Félicitations, vous avez créé votre premier test d'acceptation Concordion avec succès. De plus, commençons à faire quelque chose de plus intéressant dans les prochains chapitres.