Concordion - Guide rapide
Qu'est-ce que Concordion?
Concordion est un outil puissant pour écrire et gérer des tests d'acceptation automatisés dans des projets Java. Il s'intègre directement au framework JUnit, le rendant prêt à être utilisé avec tous les IDE JAVA populaires tels que Netbeans, Eclipse, IntelliJ IDEA.
Spécification du logiciel actif
La spécification de logiciel actif est un moyen de spécifier le comportement d'une fonction. Il fournit également un moyen de mettre en œuvre et de vérifier la spécification du logiciel en établissant une connexion avec le système en cours de développement.
Une spécification active dans Concordion se compose de deux parties:
Un document d'exigence clairement rédigé qui décrit la fonctionnalité souhaitée écrite à l'aide de XHTML. Les spécifications basées sur XHTML contiennent des descriptions des fonctionnalités fournies avec des exemples de tests d'acceptation. Les données de l'exemple sont marquées à l'aide de simples balises HTML.
Les tests d'acceptation sont écrits en langage Java appelé code de fixture. En utilisant une extension Concordion d'un cas de test JUnit standard, les tests sont implémentés. Il est de la responsabilité de Fixture Code de trouver les données de l'exemple marquées par tag et de les utiliser pour vérifier le logiciel en cours de développement.
Sortie de Cncordion
Lorsque les tests de spécification active Concordion sont exécutés, les fichiers XHTML outpu affichent la spécification d'origine et les résultats des tests. Le test réussi est mis en évidence en utilisant la couleur «verte» et le test échoué est mis en évidence en utilisant «rouge». Étant donné que tout changement de système entraînera l'échec du test, ce qui aide à identifier que les spécifications doivent être mises à jour, Concordion qualifie ces spécifications de spécifications actives. Par conséquent, les spécifications sont toujours à jour.
Principales caractéristiques
Voici les principales caractéristiques de Concordion:
Specifications as documentation- La spécification Concordion étant hautement lisible peut être utilisée comme documentation système active. Comme les spécifications basées sur Concordion sont écrites en HTML, ces documents peuvent être hyperliens.
Specifications are live- La spécification Concordion contient des exemples de comportement qui sont exécutés contre le système. Les spécifications sont codées par couleur afin que chacun puisse voir si les exemples fonctionnent ou non. L'exécution des spécifications Concordion met régulièrement la documentation à jour.
Separate "what?" from "how?"- La spécification Concordion aide à maintenir la séparation entre la mise en œuvre et le comportement requis du système. Il offre la flexibilité que la mise en œuvre peut être modifiée ultérieurement.
Simple to learn- La bibliothèque Concordion est conçue pour garder la courbe d'apprentissage courte et concise. Il a très peu de commandes à apprendre et les exemples sont automatisés à l'aide de tests JUnit afin que les tests puissent être exécutés facilement et s'intégrer facilement aux projets existants.
Powerful Customization- Concordion fournit une API d'extensions qui permet d'ajouter des fonctionnalités. Par exemple, des feuilles de calcul Excel peuvent être utilisées comme spécifications, des captures d'écran peuvent être ajoutées à la sortie, des informations de journalisation peuvent être affichées, et bien plus encore.
Ce didacticiel vous expliquera comment préparer un environnement de développement pour commencer votre travail avec Spring Framework. Ce tutoriel vous apprendra également comment configurer JDK, Tomcat et Eclipse sur votre machine avant de configurer Spring Framework:
Étape 1 - Configuration du kit de développement Java (JDK):
Vous pouvez télécharger la dernière version du SDK à partir du site Java d'Oracle: Téléchargements Java SE . Vous trouverez des instructions pour installer JDK dans les fichiers téléchargés, suivez les instructions données pour installer et configurer la configuration. Enfin, définissez les variables d'environnement PATH et JAVA_HOME pour faire référence au répertoire qui contient java et javac, généralement rép_install_java / bin et rép_install_java respectivement.
Si vous exécutez Windows et avez installé le JDK dans C: \ jdk1.7.0_75, vous devrez mettre la ligne suivante dans votre fichier C: \ autoexec.bat.
set PATH=C:\jdk1.7.0_75\bin;%PATH%
set JAVA_HOME=C:\jdk1.7.0_75
Alternativement, sous Windows NT / 2000 / XP, vous pouvez également cliquer avec le bouton droit de la souris sur Poste de travail, sélectionner Propriétés, puis Avancé, puis Variables d'environnement. Ensuite, vous mettriez à jour la valeur PATH et appuyez sur le bouton OK.
Sous Unix (Solaris, Linux, etc.), si le SDK est installé dans /usr/local/jdk1.7.0_75 et que vous utilisez le shell C, vous mettriez ce qui suit dans votre fichier .cshrc.
setenv PATH /usr/local/jdk1.7.0_75/bin:$PATH
setenv JAVA_HOME /usr/local/jdk1.7.0_75
Alternativement, si vous utilisez un environnement de développement intégré (IDE) comme Borland JBuilder, Eclipse, IntelliJ IDEA ou Sun ONE Studio, compilez et exécutez un programme simple pour confirmer que l'EDI sait où vous avez installé Java, sinon effectuez la configuration appropriée comme document donné de l'IDE.
Étape 2 - Configuration de l'IDE Eclipse
Tous les exemples de ce didacticiel ont été écrits à l'aide de l'IDE Eclipse. Je suggère donc que la dernière version d'Eclipse soit installée sur votre machine.
Pour installer Eclipse IDE, téléchargez les derniers binaires Eclipse à partir de http://www.eclipse.org/downloads/. Une fois que vous avez téléchargé l'installation, décompressez la distribution binaire dans un emplacement pratique. Par exemple dans C: \ eclipse sous Windows, ou / usr / local / eclipse sous Linux / Unix et définissez enfin la variable PATH de manière appropriée.
Eclipse peut être démarré en exécutant les commandes suivantes sur la machine Windows, ou vous pouvez simplement double-cliquer sur eclipse.exe
%C:\eclipse\eclipse.exe
Eclipse peut être démarré en exécutant les commandes suivantes sur une machine Unix (Solaris, Linux, etc.):
$/usr/local/eclipse/eclipse
Après un démarrage réussi, si tout va bien, il devrait afficher le résultat suivant:
Étape 3: Téléchargez l'archive Junit
Téléchargez la dernière version du fichier jar JUnit à partir de http://www.junit.org. Au moment de la rédaction de ce didacticiel, j'ai téléchargé Junit-4.10.jar et l' ai copié dans le dossier C: \> JUnit.
OS | Nom de l'archive |
---|---|
les fenêtres | junit4.10.jar |
Linux | junit4.10.jar |
Mac | junit4.10.jar |
Étape 4: définir l'environnement JUnit
Met le JUNIT_HOMEvariable d'environnement pour pointer vers l'emplacement du répertoire de base où JUNIT jar est stocké sur votre machine. En supposant que nous avons stocké junit4.10.jar dans le dossier JUNIT sur divers systèmes d'exploitation comme suit.
OS | Production |
---|---|
les fenêtres | Définissez la variable d'environnement JUNIT_HOME sur C: \ JUNIT |
Linux | export JUNIT_HOME = / usr / local / JUNIT |
Mac | export JUNIT_HOME = / Bibliothèque / JUNIT |
Étape 5: Définissez la variable CLASSPATH
Met le CLASSPATHvariable d'environnement pour pointer vers l'emplacement du fichier JUNIT. En supposant que nous avons stocké junit4.10.jar dans le dossier JUNIT sur divers systèmes d'exploitation comme suit.
OS | Production |
---|---|
les fenêtres | Définissez la variable d'environnement CLASSPATH sur% CLASSPATH%;% JUNIT_HOME% \ junit4.10.jar;.; |
Linux | export CLASSPATH =$CLASSPATH:$JUNIT_HOME / junit4.10.jar :. |
Mac | export CLASSPATH =$CLASSPATH:$JUNIT_HOME / junit4.10.jar :. |
Étape 6 - Configurer les bibliothèques de concordion
Maintenant, si tout va bien, vous pouvez procéder à la configuration de vos bibliothèques Concordion. Voici les étapes simples pour télécharger et installer le framework sur votre machine.
Téléchargez la dernière version des binaires du framework Concordion sur http://dl.bintray.com/concordion/downloads/concordion-1.5.1.zip.
Au moment de la rédaction de ce tutoriel, j'ai téléchargé concordion-1.5.1 sur ma machine Windows et lorsque vous décompressez le fichier téléchargé, il vous donnera la structure de répertoires suivante dans E: \ concordion-1.5.1 comme suit.
lib - Dossier bibliothèque
hamcrest-core-1.3.jar
junit-4.12.jar
ognl-2.6.9.jar
xom-1.2.5.jar
src - Dossier de code source
main
test
test-dummies
concordion-1.5.1.jar
Vous trouverez toutes les bibliothèques de dépendances Concordion dans le répertoire E: \ concordion \ lib. Assurez-vous de définir correctement votre variable CLASSPATH sur ce répertoire, sinon vous rencontrerez des problèmes lors de l'exécution de votre application. Si vous utilisez Eclipse, il n'est pas nécessaire de définir CLASSPATH car tous les paramètres seront effectués via Eclipse.
Une fois que vous avez terminé cette dernière étape, vous êtes prêt à procéder pour votre premier exemple de Concordion que vous verrez dans le chapitre suivant.
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 à écrire une application Concordion simple 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 onglet 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
Maintenant, créons 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 comme 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.
Concordion - Set Command
La commande Concordion set est utilisée pour stocker des variables temporaires qui peuvent être utilisées dans d'autres commandes Concordion.
Tenez compte de l'exigence suivante -
The Sum of two numbers 2 and 3 will be 5.
Si nous voulons que les nombres 2 et 3 soient des paramètres et que nous les transmettons à la fonction de somme comme paramètre afin qu'ils puissent être vérifiés par rapport au résultat renvoyé par le système, nous pouvons utiliser concordion: set command dans les balises span autour des nombres.
<p>The Sum of two numbers <span concordion:set = "#firstNumber">2</span>
and <span concordion:set = "#secondNumber">3</span> will be
<span concordion:assertEquals = "sum(#firstNumber, #secondNumber)">5
</span>.</p>
Lorsque Concordion analyse le document, il définit une variable temporaire #firstNumber pour être la valeur "2" et #secondNumber pour être la valeur "3", puis appelle la méthode sum () avec les paramètres #firstNumber et #secondNumber et vérifie que le résultat est égal à "5".
Exemple
Laissez-nous mettre en place un IDE Eclipse fonctionnel et suivez les étapes ci-dessous pour créer une application Concordion -
Étape | La description |
---|---|
1 | Créez un projet avec un nom concordion et créez un package com.tutorialspoint sous lesrc dossier dans le projet créé. |
2 | Ajoutez les bibliothèques Concordion requises à l'aide de l' option Ajouter des fichiers JAR externes comme expliqué dans le chapitre Concordion - Première application . |
3 | Créez la classe Java System sous le package com.tutorialspoint . |
4 | Créez la classe Fixture SystemFixture sous le package specs.tutorialspoint . |
5 | Créez la spécification html System.html sous le package specs.tutorialspoint . |
6 | La dernière étape consiste à créer le contenu de tous les fichiers Java et le fichier de spécification et d'exécuter l'application comme expliqué ci-dessous. |
Voici le contenu du fichier System.java -
package com.tutorialspoint;
public class System {
public int sum(int firstNumber, int secondNumber) {
return firstNumber + secondNumber;
}
}
Voici le contenu du fichier SystemFixture.java -
package specs.tutorialspoint;
import org.concordion.integration.junit4.ConcordionRunner;
import org.junit.runner.RunWith;
import com.tutorialspoint.System;
@RunWith(ConcordionRunner.class)
public class SystemFixture {
System system = new System();
public int sum(int firstNumber, int secondNumber) {
return system.sum(firstNumber, secondNumber);
}
}
Voici le contenu du fichier System.html -
<html xmlns:concordion = "http://www.concordion.org/2007/concordion">
<head>
<link href = "../concordion.css" rel = "stylesheet" type = "text/css" />
</head>
<body>
<h1>Calculator Specifications</h1>
<p>We are building online calculator support in our website.</p>
<p>Following is the requirement to add two numbers:</p>
<div class = "example">
<h3>Example</h3>
<p>The Sum of two numbers <span concordion:set = "#firstNumber">2</span>
and <span concordion:set = "#secondNumber">3</span> will be
<span concordion:execute = "#result = sum(#firstNumber, #secondNumber)"></span>
<span concordion:assertEquals = "#result">5</span>.</p>
</div>
</body>
</html>
Une fois que vous avez terminé la création des fichiers source et de spécification, laissez-nous exécuter l'application en tant que test JUnit. Si tout va bien avec votre application, cela produira le résultat suivant -
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.
Concordion - Commande AssertEquals
La commande Concordion assertEquals est utilisée pour vérifier la propriété du bean Java ou le résultat de la méthode par rapport à une valeur spécifiée.
Tenez compte de l'exigence suivante -
The sum of two numbers 2 and 3 will be 5.
Si nous voulons que les nombres 2 et 3 soient des paramètres et que nous les transmettons à la fonction sum en tant que paramètre afin qu'il puisse être vérifié par rapport au résultat renvoyé par le système, nous pouvons utiliser la commande concordion: assertEquals dans la balise span autour de la fonction sum .
<p>The Sum of two numbers <span concordion:set="#firstNumber">2</span>
and <span concordion:set="#secondNumber">3</span> will be
<span concordion:assertEquals="sum(#firstNumber, #secondNumber)">5</span>.</p>
Lorsque Concordion analyse le document, il définit une variable temporaire #firstNumber pour être la valeur "2" et #secondNumber pour être la valeur "3" à l'aide de la commande set, puis appelle la méthode sum () avec les paramètres #firstNumber et #secondNumber et vérifiez que le résultat est égal à "5" à l'aide de la commande assertEquals.
Exemple
Laissez-nous avoir Eclipse IDE en place et suivez les étapes suivantes pour créer une application Concordion -
Étape | La description |
---|---|
1 | Créez un projet avec un nom concordion et créez un package com.tutorialspoint sous lesrc dossier dans le projet créé. |
2 | Ajoutez les bibliothèques Concordion requises à l'aide de l' option Ajouter des fichiers JAR externes , comme expliqué dans le chapitre Concordion - Première application . |
3 | Créez la classe Java System sous le package com.tutorialspoint . |
4 | Créez la classe Fixture SystemFixture sous le package specs.tutorialspoint . |
5 | Créez la spécification html System.html sous le package specs.tutorialspoint . |
6 | La dernière étape consiste à créer le contenu de tous les fichiers Java et le fichier de spécification et d'exécuter l'application comme expliqué ci-dessous. |
Voici le contenu du fichier System.java -
package com.tutorialspoint;
public class System {
public int sum(int firstNumber, int secondNumber) {
return firstNumber + secondNumber;
}
}
Voici le contenu du fichier SystemFixture.java -
package specs.tutorialspoint;
import org.concordion.integration.junit4.ConcordionRunner;
import org.junit.runner.RunWith;
import com.tutorialspoint.System;
@RunWith(ConcordionRunner.class)
public class SystemFixture {
System system = new System();
public int sum(int firstNumber, int secondNumber) {
return system.sum(firstNumber, secondNumber);
}
}
Voici le contenu du fichier System.html -
<html xmlns:concordion = "http://www.concordion.org/2007/concordion">
<head>
<link href = "../concordion.css" rel = "stylesheet" type = "text/css" />
</head>
<body>
<h1>Calculator Specifications</h1>
<p>We are building online calculator support in our website.</p>
<p>Following is the requirement to add two numbers:</p>
<div class = "example">
<h3>Example</h3>
<p>The Sum of two numbers <span concordion:set = "#firstNumber">2</span>
and <span concordion:set = "#secondNumber">3</span> will be
<span concordion:assertEquals = "sum(#firstNumber, #secondNumber)">5</span>.</p>
</div>
</body>
</html>
Une fois que vous avez terminé la création des fichiers source et de spécification, laissez-nous exécuter l'application en tant que JUnit Test. Si tout va bien avec votre application, le résultat suivant s'affiche:
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.
Succès: 1, échecs: 0
Concordion - AssertTrue Command
La commande Concordion assertTrue est utilisée lorsque l'appareil a besoin de connaître le résultat attendu pour effectuer un test.
Tenez compte de l'exigence suivante -
User Name : Robert De
The User name starts with R.
The User name starts with S == false.
Si nous voulons qu'un test soit exécuté sur le nom d'utilisateur et que nous vérifions si le nom d'utilisateur commence par R ou non.
<p>User Name :<span concordion:set = "#userName">Robert De</span></p>
<p>The User name <span concordion:assertTrue = "#userName.startsWith(#letter)">starts
with <b concordion:set = "#letter">R</b></span>.</p>
<p>The User name <span concordion:assertTrue = "#userName.startsWith(#letter)">starts
with <b concordion:set = "#letter">S</b></span>.</p>
Lorsque Concordion analyse le document, il définit une variable temporaire #userName comme valeur "Robert De". Ensuite, il vérifiera si le userName commence par la lettre spécifiée par la variable #letter définie dans la commande suivante.
Exemple
Laissez-nous mettre en place un IDE Eclipse fonctionnel et suivez les étapes ci-dessous pour créer une application Concordion -
Étape | La description |
---|---|
1 | Créez un projet avec un nom concordion et créez un package com.tutorialspoint sous lesrc dossier dans le projet créé. |
2 | Ajoutez les bibliothèques Concordion requises à l'aide de l' option Ajouter des fichiers JAR externes comme expliqué dans le chapitre Concordion - Première application . |
3 | Créez la classe Java System sous le package com.tutorialspoint . |
4 | Créez la classe Fixture SystemFixture sous le package specs.tutorialspoint . |
5 | Créez la spécification html System.html sous le package specs.tutorialspoint . |
6 | La dernière étape consiste à créer le contenu de tous les fichiers Java et le fichier de spécifications et d'exécuter l'application comme expliqué ci-dessous. |
Voici le contenu du fichier System.java -
package com.tutorialspoint;
public class System {
}
Voici le contenu du fichier SystemFixture.java -
package specs.tutorialspoint;
import org.concordion.integration.junit4.ConcordionRunner;
import org.junit.runner.RunWith;
@RunWith(ConcordionRunner.class)
public class SystemFixture {
}
Voici le contenu du fichier System.html -
<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 split full name of a logged in user to
its constituents by splitting name by whitespace:</p>
<div class = "example">
<h3>Example</h3>
<p>User Name :<span concordion:set = "#userName">Robert De</span></p>
<p>The User name <span concordion:assertTrue = "#userName.startsWith(#letter)">starts
with <b concordion:set = "#letter">R</b></span>.</p>
<p>The User name <span concordion:assertTrue = "#userName.startsWith(#letter)">starts
with <b concordion:set = "#letter">S</b></span>.</p>
</div>
</body>
</html>
Une fois que vous avez terminé la création des fichiers source et de spécification, laissez-nous exécuter l'application en tant que JUnit Test. Si tout va bien avec votre application, cela produira le résultat suivant -
C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp\concordion\specs\tutorialspoint\System.html
Successes: 1, Failures: 1
System.html est la sortie du test de Concordion.
Concordion - AssertFalse Command
La commande Concordion assertFalse est utilisée lorsque l'appareil a besoin de connaître le résultat attendu pour effectuer un test.
Tenez compte de l'exigence suivante -
User Name : Robert De
The User name does not start with S.
Si nous voulons qu'un test soit exécuté sur le nom d'utilisateur et que nous vérifions que le nom d'utilisateur ne commence pas par S.
<p>User Name :<span concordion:set = "#userName">Robert De</span></p>
<p>The User name <span concordion:assertFalse = "#userName.startsWith(#letter)">does not start
with <b concordion:set = "#letter">S</b></span>.</p>
Lorsque Concordion analyse le document, il définit une variable temporaire #userName comme valeur "Robert De". Ensuite, il vérifiera si le userName commence par la lettre spécifiée par la variable #letter définie dans la commande suivante.
Exemple
Laissez-nous mettre en place un IDE Eclipse fonctionnel et suivez les étapes ci-dessous pour créer une application Concordion -
Étape | La description |
---|---|
1 | Créez un projet avec un nom concordion et créez un package com.tutorialspoint sous lesrc dossier dans le projet créé. |
2 | Ajoutez les bibliothèques Concordion requises à l'aide de l' option Ajouter des fichiers JAR externes comme expliqué dans le chapitre Concordion - Première application . |
3 | Créez la classe Java System sous le package com.tutorialspoint . |
4 | Créez la classe Fixture SystemFixture sous le package specs.tutorialspoint . |
5 | Créez la spécification html System.html sous le package specs.tutorialspoint . |
6 | La dernière étape consiste à créer le contenu de tous les fichiers Java et le fichier de spécifications et d'exécuter l'application comme expliqué ci-dessous. |
Voici le contenu du fichier System.java -
package com.tutorialspoint;
public class System {
}
Voici le contenu du fichier SystemFixture.java -
package specs.tutorialspoint;
import org.concordion.integration.junit4.ConcordionRunner;
import org.junit.runner.RunWith;
@RunWith(ConcordionRunner.class)
public class SystemFixture {
}
Voici le contenu du fichier System.html -
<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 split full name of a logged in user to its
constituents by splitting name by whitespace:</p>
<div class = "example">
<h3>Example</h3>
<p>User Name :<span concordion:set = "#userName">Robert De</span></p>
<p>The User name <span concordion:assertFalse = "#userName.startsWith(#letter)">
does not start with <b concordion:set = "#letter">
S</b></span>.</p>
</div>
</body>
</html>
Une fois que vous avez terminé la création des fichiers source et de spécification, laissez-nous exécuter l'application en tant que JUnit Test. Si tout va bien avec votre application, cela produira le résultat suivant -
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.
Concordion - Exécuter la commande
La commande d'exécution de concordion est utilisée pour exécuter l'opération de fixation de concordion. Tenez compte de l'exigence suivante -
The sum of two numbers 2 and 3 will be 5.
Si nous voulons écrire une spécification pour une fonction de somme qui acceptera deux nombres et affichera leur somme, alors la spécification sera la suivante -
<p>The Sum of two numbers <span concordion:set = "#firstNumber">2</span> and
<span concordion:set = "#secondNumber">3</span> will be
<span concordion:execute = "#result = sum(#firstNumber, #secondNumber)">
</span><span concordion:assertEquals = "#result">5</span>.</p>
Lorsque Concordion analyse le document, il définira une variable temporaire #firstNumber pour être la valeur "2" et #secondNumber pour être la valeur "3", puis exécutera la méthode sum () avec des paramètres comme #firstNumber et #secondNumber en utilisant l'exécuter et définissez le résultat dans la variable #result et vérifiez que la variable #result est égale à "5".
Exemple
Laissez-nous mettre en place un IDE Eclipse fonctionnel et suivez les étapes ci-dessous pour créer une application Concordion -
Étape | La description |
---|---|
1 | Créez un projet avec un nom concordion et créez un package com.tutorialspoint sous lesrc dossier dans le projet créé. |
2 | Ajoutez les bibliothèques Concordion requises à l'aide de l' option Ajouter des fichiers JAR externes , comme expliqué dans le chapitre Concordion - Première application . |
3 | Créez la classe Java System sous le package com.tutorialspoint . |
4 | Créez la classe Fixture SystemFixture sous le package specs.tutorialspoint . |
5 | Créez la spécification html System.html sous le package specs.tutorialspoint . |
6 | La dernière étape consiste à créer le contenu de tous les fichiers Java et le fichier de spécifications et d'exécuter l'application comme expliqué ci-dessous. |
Voici le contenu du fichier System.java -
package com.tutorialspoint;
public class System {
public int sum(int firstNumber, int secondNumber) {
return firstNumber + secondNumber;
}
}
Voici le contenu du fichier SystemFixture.java -
package specs.tutorialspoint;
import org.concordion.integration.junit4.ConcordionRunner;
import org.junit.runner.RunWith;
import com.tutorialspoint.System;
@RunWith(ConcordionRunner.class)
public class SystemFixture {
System system = new System();
public int sum(int firstNumber, int secondNumber) {
return system.sum(firstNumber, secondNumber);
}
}
Voici le contenu du fichier System.html -
<html xmlns:concordion = "http://www.concordion.org/2007/concordion">
<head>
<link href = "../concordion.css" rel = "stylesheet" type = "text/css" />
</head>
<body>
<h1>Calculator Specifications</h1>
<p>We are building online calculator support in our website.</p>
<p>Following is the requirement to add two numbers:</p>
<div class = "example">
<h3>Example</h3>
<p>The Sum of two numbers <span concordion:set = "#firstNumber">2</span>
and <span concordion:set = "#secondNumber">3</span> will be
<span concordion:execute = "#result = sum(#firstNumber, #secondNumber)">
</span><span concordion:assertEquals = "#result">5</span>.</p>
</div>
</body>
</html>
Une fois que vous avez terminé la création des fichiers source et de spécification, laissez-nous exécuter l'application en tant que JUnit Test. Si tout va bien avec votre application, cela produira le résultat suivant -
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.
Concordion - Retour d'objet
La commande d'exécution Concordion peut être utilisée pour obtenir le résultat d'un comportement sous la forme d'un objet à l'aide duquel nous pouvons obtenir plusieurs sorties d'un comportement. Par exemple, considérez l'exigence suivante -
The full name Robert De is to be broken into first name Robert and last name De.
Ici, nous avons besoin d'une fonction de fractionnement qui accepte un nom d'utilisateur et renvoie un objet de résultat ayant le prénom et le nom de famille comme propriétés afin que nous puissions les utiliser.
Si nous voulons écrire une spécification pour une telle fonction de division qui attendra un nom d'utilisateur et affichera un objet de résultat, alors ce qui suit sera la spécification -
<p>The full name <span concordion:execute = "#result = split(#TEXT)">Robert
De</span> is to be broken into first name
<span concordion:assertEquals = "#result.firstName">Robert</span> and last name
<span concordion:assertEquals = "#result.lastName">De</span>.</p>
Lorsque Concordion analyse le document, il définit la valeur de la variable spéciale #TEXT comme valeur de l'élément actuel comme "Robert De" et la transmet à la fonction de fractionnement. Ensuite, il exécutera la méthode split () avec des paramètres comme #TEXT en utilisant la commande execute et définira le résultat dans la variable #result et en utilisant l'objet de résultat, imprimera les propriétés firstName et lastName comme sortie.
Exemple
Laissez-nous mettre en place un IDE Eclipse fonctionnel et suivez les étapes ci-dessous pour créer une application Concordion -
Étape | La description |
---|---|
1 | Créez un projet avec le nom concordion et créez un package com.tutorialspoint sous lesrc dossier dans le projet créé. |
2 | Ajoutez les bibliothèques Concordion requises à l'aide de l' option Ajouter des fichiers JAR externes comme expliqué dans le chapitre Concordion - Première application . |
3 | Créez la classe Java System , Result sous le package com.tutorialspoint . |
4 | Créez la classe Fixture SystemFixture sous le package specs.tutorialspoint . |
5 | Créez la spécification html System.html sous le package specs.tutorialspoint . |
6 | La dernière étape consiste à créer le contenu de tous les fichiers Java et le fichier de spécifications et d'exécuter l'application comme expliqué ci-dessous. |
Voici le contenu du fichier Result.java -
package com.tutorialspoint;
public class Result {
private String firstName;
private String lastName;
public String getFirstName() {
return firstName;
}
public void setFirstName(String firstName) {
this.firstName = firstName;
}
public String getLastName() {
return lastName;
}
public void setLastName(String lastName) {
this.lastName = lastName;
}
}
Voici le contenu du fichier System.java -
package com.tutorialspoint;
public class System {
public Result split(String userName){
Result result = new Result();
String[] words = userName.split(" ");
result.setFirstName(words[0]);
result.setLastName(words[1]);
return result;
}
}
Voici le contenu du fichier SystemFixture.java -
package specs.tutorialspoint;
import com.tutorialspoint.Result;
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 Result split(String userName){
return system.split(userName);
}
}
Voici le contenu du fichier System.html -
<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 split full name of a logged in user to its
constituents by splitting name by whitespace:</p>
<div class = "example">
<h3>Example</h3>
<p>The full name <span concordion:execute = "#result = split(#TEXT)">Robert
De</span> is to be broken into first name <span
concordion:assertEquals = "#result.firstName">Robert</span> and last name <span
concordion:assertEquals = "#result.lastName">De</span>.</p>
</div>
</body>
</html>
Une fois que vous avez terminé de créer les fichiers source et de spécification, laissez-nous exécuter l'application en tant que JUnit Test. Si tout va bien avec votre application, cela produira le résultat suivant -
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.
Concordion - Carte de retour
La commande d'exécution de Concordion peut être utilisée pour obtenir le résultat d'un comportement sous la forme d'une carte à l'aide de laquelle nous pouvons obtenir plusieurs sorties d'un comportement. Par exemple, considérez l'exigence suivante -
The full name Robert De is to be broken into its first name Robert and last name De.
Ici, nous avons besoin d'une fonction renversée qui accepte un nom d'utilisateur et renvoie un objet Map ayant le firstName et le lastName comme clés ayant des valeurs correspondantes afin que nous puissions les utiliser.
Si nous voulons écrire une spécification pour une telle fonction de division qui acceptera un nom d'utilisateur et affichera un objet de résultat, alors ce qui suit sera la spécification -
<p>The full name <span concordion:execute = "#result = split(#TEXT)">Robert
De</span> is to be broken into first name <span
concordion:assertEquals = "#result.firstName">Robert</span> and last name <span
concordion:assertEquals = "#result.lastName">De</span>.</p>
Lorsque Concordion analyse le document, il définit la valeur de la variable spéciale #TEXT comme étant la valeur de l'élément actuel comme "Robert De" et la transmet à la fonction de fractionnement. Ensuite, il exécutera la méthode split () avec des paramètres comme #TEXT en utilisant la commande execute et définira le résultat dans la variable #result et en utilisant la carte de résultats, imprimera les valeurs firstName et lastName en sortie.
Exemple
Laissez-nous mettre en place un IDE Eclipse fonctionnel et suivez les étapes ci-dessous pour créer une application Concordion -
Étape | La description |
---|---|
1 | Créez un projet avec un nom concordion et créez un package com.tutorialspoint sous lesrc dossier dans le projet créé. |
2 | Ajoutez les bibliothèques Concordion requises à l'aide de l' option Ajouter des fichiers JAR externes comme expliqué dans le chapitre Concordion - Première application . |
3 | Créez la classe Java System sous le package com.tutorialspoint . |
4 | Créez la classe Fixture SystemFixture sous le package specs.tutorialspoint . |
5 | Créez la spécification html System.html sous le package specs.tutorialspoint . |
6 | La dernière étape consiste à créer le contenu de tous les fichiers Java et le fichier de spécifications et d'exécuter l'application comme expliqué ci-dessous. |
Voici le contenu du fichier System.java -
package com.tutorialspoint;
import java.util.HashMap;
import java.util.Map;
public class System {
public Map split(String userName){
Map<String, String> result = new HashMap<String, String>();
String[] words = userName.split(" ");
result.put("firstName", words[0]);
result.put("lastName", words[1]);
return result;
}
}
Voici le contenu du fichier SystemFixture.java -
package specs.tutorialspoint;
import java.util.Map;
import com.tutorialspoint.Result;
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 Map<String, String> split(String userName){
return system.split(userName);
}
}
Voici le contenu du fichier System.html -
<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 split full name of a logged in user to its
constituents by splitting name by whitespace:</p>
<div class = "example">
<h3>Example</h3>
<p>The full name <span concordion:execute = "#result = split(#TEXT)">Robert
De</span> is to be broken into first name <span
concordion:assertEquals = "#result.firstName">Robert</span> and last name
<span concordion:assertEquals = "#result.lastName">De</span>.</p>
</div>
</body>
</html>
Une fois que vous avez terminé de créer les fichiers source et de spécification, laissez-nous exécuter l'application en tant que JUnit Test. Si tout va bien avec votre application, cela produira le résultat suivant -
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.
Concordion - Retour de MultiValueResult
La commande d'exécution de Concordion peut être utilisée pour obtenir le résultat d'un comportement sous la forme d'une carte à l'aide de laquelle nous pouvons obtenir plusieurs sorties d'un comportement. Par exemple, considérez l'exigence suivante -
The full name Robert De is to be broken into its first name Robert and last name De.
Ici, nous avons besoin d'une fonction de fractionnement qui accepte un nom d'utilisateur et renvoie un objet Map ayant firstName et lastName comme clés avec leurs valeurs correspondantes afin que nous puissions les utiliser.
Si nous voulons écrire une spécification pour une telle fonction de division qui acceptera un nom d'utilisateur et affichera un objet de résultat, alors la spécification serait la suivante -
<p>The full name <span concordion:execute = "#result = split(#TEXT)">Robert
De</span> is to be broken into first name
<span concordion:assertEquals = "#result.firstName">Robert</span> and last name
<span concordion:assertEquals = "#result.lastName">De</span>.</p>
Lorsque Concordion analyse le document, il définit la valeur de la variable spéciale #TEXT comme étant la valeur de l'élément actuel comme "Robert De" et la transmet à la fonction de fractionnement. Ensuite, il exécutera la méthode split () avec des paramètres comme #TEXT en utilisant la commande execute et définira le résultat dans la variable #result et en utilisant la mappe de résultats, imprimera les valeurs firstName et lastName comme sortie.
Exemple
Laissez-nous mettre en place un IDE Eclipse fonctionnel et suivez les étapes ci-dessous pour créer une application Concordion -
Étape | La description |
---|---|
1 | Créez un projet avec le nom concordion et créez un package com.tutorialspoint sous lesrc dossier dans le projet créé. |
2 | Ajoutez les bibliothèques Concordion requises à l'aide de l' option Ajouter des fichiers JAR externes comme expliqué dans le chapitre Concordion - Première application . |
3 | Créez la classe Java System sous le package com.tutorialspoint . |
4 | Créez la classe Fixture SystemFixture sous le package specs.tutorialspoint . |
5 | Créez la spécification html System.html sous le package specs.tutorialspoint . |
6 | La dernière étape consiste à créer le contenu de tous les fichiers Java et le fichier de spécifications et d'exécuter l'application comme expliqué ci-dessous. |
Voici le contenu du fichier System.java -
package com.tutorialspoint;
import org.concordion.api.MultiValueResult;
public class System {
public MultiValueResult split(String userName){
MultiValueResult result = new MultiValueResult();
String[] words = userName.split(" ");
result.with("firstName", words[0]).with("lastName", words[1]);
return result;
}
}
Voici le contenu du fichier SystemFixture.java -
package specs.tutorialspoint;
import org.concordion.api.MultiValueResult;
import org.concordion.integration.junit4.ConcordionRunner;
import org.junit.runner.RunWith;
import com.tutorialspoint.System;
@RunWith(ConcordionRunner.class)
public class SystemFixture {
System system = new System();
public MultiValueResult split(String userName){
return system.split(userName);
}
}
Voici le contenu du fichier System.html -
<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 split full name of a logged in
user to its constituents by splitting name by whitespace:</p>
<div class = "example">
<h3>Example</h3>
<p>The full name <span concordion:execute = "#result = split(#TEXT)">Robert De</span>
is to be broken into first name <span
concordion:assertEquals = "#result.firstName">Robert</span> and last name <span
concordion:assertEquals = "#result.lastName">De</span>.</p>
</div>
</body>
</html>
Une fois que vous avez terminé de créer les fichiers source et de spécification, laissez-nous exécuter l'application en tant que JUnit Test. Si tout va bien avec votre application, cela produira le résultat suivant -
C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp\concordion\specs\tutorialspoint\System.html
Successes: 2, Failures: 0
System.html est la sortie du test de Concordion.
Concordion - Exécuter sur table
La commande d'exécution de Concordion peut être utilisée pour exécuter l'opération d'un appareil de concordion de manière répétée. Par exemple, il sera utile si nous voulons illustrer une exigence avec plusieurs exemples sous la forme d'un tableau.
Tenez compte de l'exigence suivante -
<table>
<tr><th>First Number</th><th>Second Number</th><th>Sum</th></tr>
<tr><td>2</td><td>3</td><td>5</td></tr>
<tr><td>4</td><td>5</td><td>9</td></tr>
</table>
Si nous voulons écrire une spécification pour une fonction de somme qui acceptera deux nombres et affichera leur somme, alors la spécification serait la suivante -
<table>
<tr><th>First Number</th><th>Second Number</th><th>Sum</th></tr>
<tr concordion:execute = "#result = sum(#fullName)">
<td concordion:set = "#firstNumber">2</td>
<td concordion:set = "#secondNumber">3</td>
<td concordion:assertEquals = "#result">5</td>
</tr>
<tr concordion:execute = "#result = sum(#fullName)">
<td concordion:set = "#firstNumber">4</td>
<td concordion:set = "#secondNumber">5</td>
<td concordion:assertEquals = "#result">9</td>
</tr>
</table>
Lorsque Concordion analyse le document, il définit une variable temporaire #firstNumber pour être la valeur "2" et #secondNumber pour la valeur "3". Ensuite, il exécutera la méthode sum () avec des paramètres tels que #firstNumber et #secondNumber en utilisant la commande execute et définira le résultat dans la variable #result et vérifiera que la variable #result est égale à "5". Ce processus est répété pour chaque élément de ligne de tableau.
Exemple
Laissez-nous mettre en place un IDE Eclipse fonctionnel et suivez les étapes ci-dessous pour créer une application Concordion -
Étape | La description |
---|---|
1 | Créez un projet avec un nom concordion et créez un package com.tutorialspoint sous lesrc dossier dans le projet créé. |
2 | Ajoutez les bibliothèques Concordion requises à l'aide de l' option Ajouter des fichiers JAR externes , comme expliqué dans le chapitre Concordion - Première application . |
3 | Créez la classe Java System sous le package com.tutorialspoint . |
4 | Créez la classe Fixture SystemFixture sous le package specs.tutorialspoint . |
5 | Créez la spécification html System.html sous le package specs.tutorialspoint . |
6 | La dernière étape consiste à créer le contenu de tous les fichiers Java et le fichier de spécifications et d'exécuter l'application comme expliqué ci-dessous. |
Voici le contenu du fichier System.java -
package com.tutorialspoint;
public class System {
public int sum(int firstNumber, int secondNumber) {
return firstNumber + secondNumber;
}
}
Voici le contenu du fichier SystemFixture.java -
package specs.tutorialspoint;
import org.concordion.integration.junit4.ConcordionRunner;
import org.junit.runner.RunWith;
import com.tutorialspoint.System;
@RunWith(ConcordionRunner.class)
public class SystemFixture {
System system = new System();
public int sum(int firstNumber, int secondNumber) {
return system.sum(firstNumber, secondNumber);
}
}
Voici le contenu du fichier System.html -
<html xmlns:concordion = "http://www.concordion.org/2007/concordion">
<head>
<link href = "../concordion.css" rel = "stylesheet" type = "text/css" />
</head>
<body>
<h1>Calculator Specifications</h1>
<p>We are building online calculator support in our website.</p>
<p>Following is the requirement to add two numbers:</p>
<div class = "example">
<h3>Example</h3>
<table>
<tr>
<th>First Number</th>
<th>Second Number</th>
<th>Sum</th>
</tr>
<tr concordion:execute = "#result = sum(#firstNumber, #secondNumber)">
<td concordion:set = "#firstNumber">2</td>
<td concordion:set = "#secondNumber">3</td>
<td concordion:assertEquals = "#result">5</td>
</tr>
<tr concordion:execute = "#result = sum(#firstNumber, #secondNumber)">
<td concordion:set = "#firstNumber">4</td>
<td concordion:set = "#secondNumber">5</td>
<td concordion:assertEquals = "#result">9</td>
</tr>
</table>
</div>
</body>
</html>
Une fois que vous avez terminé de créer les fichiers source et de spécification, laissez-nous exécuter l'application en tant que JUnit Test. Si tout va bien avec votre application, cela produira le résultat suivant -
C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp\concordion\specs\tutorialspoint\System.html
Successes: 2, Failures: 0
System.html est la sortie du test de Concordion.
Concordion - Exécuter sur liste
La commande d'exécution de Concordion peut être utilisée pour exécuter l'opération d'un appareil de concordion de manière répétée. Par exemple, il sera utile si nous voulons illustrer une exigence avec plusieurs exemples sous la forme d'une liste.
Tenez compte de l'exigence suivante -
<ul>
<li>The full name Robert De is to be split as
<ul>
<li>Robert</li>
<li>De</li>
</ul>
</li>
<li>The full name John Diere is to be split as
<ul>
<li>John</li>
<li>Diere</li>
</ul>
</li>
</ul>
Si nous voulons écrire une spécification pour une fonction de division qui divisera un nom en son prénom et son nom, alors la spécification serait la suivante -
<ul>
<li>The full name <span concordion:execute = "#result = split(#TEXT)">
Robert De</span> is to be splited as
<ul>
<li><span concordion:assertEquals = "#result.firstName">Robert</span></li>
<li><span concordion:assertEquals = "#result.lastName">De</span></li>
</ul>
</li>
<li>The full name <span concordion:execute = "#result = split(#TEXT)">
John Diere</span> is to be splited as
<ul>
<li><span concordion:assertEquals = "#result.firstName">John</span></li>
<li><span concordion:assertEquals = "#result.lastName">Diere</span></li>
</ul>
</li>
</ul>
Lorsque Concordion analyse le document, il définit la valeur de la variable spéciale #TEXT comme étant la valeur de l'élément actuel comme "Robert De" et la transmet à la fonction de fractionnement. Ensuite, il exécutera la méthode split () avec des paramètres comme #TEXT en utilisant la commande execute et définira le résultat dans la variable #result et en utilisant result, imprimera les valeurs firstName et lastName comme sortie.
Exemple
Laissez-nous mettre en place un IDE Eclipse fonctionnel et suivez les étapes ci-dessous pour créer une application Concordion -
Étape | La description |
---|---|
1 | Créez un projet avec un nom concordion et créez un package com.tutorialspoint sous lesrc dossier dans le projet créé. |
2 | Ajoutez les bibliothèques Concordion requises à l'aide de l' option Ajouter des fichiers JAR externes , comme expliqué dans le chapitre Concordion - Première application . |
3 | Créez la classe Java System sous le package com.tutorialspoint . |
4 | Créez la classe Fixture SystemFixture sous le package specs.tutorialspoint . |
5 | Créez la spécification html System.html sous le package specs.tutorialspoint . |
6 | La dernière étape consiste à créer le contenu de tous les fichiers Java et le fichier de spécifications et d'exécuter l'application comme expliqué ci-dessous. |
Voici le contenu du fichier System.java -
package com.tutorialspoint;
import org.concordion.api.MultiValueResult;
public class System {
public MultiValueResult split(String userName){
MultiValueResult result = new MultiValueResult();
String[] words = userName.split(" ");
result.with("firstName", words[0]).with("lastName", words[1]);
return result;
}
}
Voici le contenu du fichier SystemFixture.java -
package specs.tutorialspoint;
import org.concordion.api.MultiValueResult;
import org.concordion.integration.junit4.ConcordionRunner;
import org.junit.runner.RunWith;
import com.tutorialspoint.System;
@RunWith(ConcordionRunner.class)
public class SystemFixture {
System system = new System();
public MultiValueResult split(String userName){
return system.split(userName);
}
}
Voici le contenu du fichier System.html -
<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 split full name of a logged
in user to its constituents by splitting name by whitespace:</p>
<div class = "example">
<h3>Example</h3>
<ul>
<li>The full name <span concordion:execute = "#result = split(#TEXT)">
Robert De</span> is to be splited as
<ul>
<li><span concordion:assertEquals = "#result.firstName">
Robert</span></li>
<li><span concordion:assertEquals = "#result.lastName">
De</span></li>
</ul>
</li>
<li>The full name <span concordion:execute ="#result = split(#TEXT)">
John Diere</span> is to be splited as
<ul>
<li><span concordion:assertEquals = "#result.firstName">
John</span></li>
<li><span concordion:assertEquals = "#result.lastName">
Diere</span></li>
</ul>
</li>
</ul>
</div>
</body>
</html>
Une fois que vous avez terminé la création des fichiers source et de spécification, laissez-nous exécuter l'application en tant que JUnit Test. Si tout va bien avec votre application, cela produira le résultat suivant -
C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp\concordion\specs\tutorialspoint\System.html
Successes: 4, Failures: 0
System.html est la sortie du test de Concordion.
Concordion - Commande verifyRows
La commande Concordion verifyRows peut être utilisée pour vérifier le contenu d'une collection renvoyée par le système. Par exemple, si nous configurons un ensemble d'utilisateurs dans le système et effectuons une recherche partielle sur eux, alors le système devrait renvoyer les éléments correspondants, sinon nos tests d'acceptation devraient échouer.
Tenez compte de l'exigence suivante -
<table>
<tr><th>Users</th></tr>
<tr><td>Robert De</td></tr>
<tr><td>John Diere</td></tr>
<tr><td>Julie Re</td></tr>
</table>
<p>Search for J should return:</p>
<table>
<tr><th>Matching Users</th></tr>
<tr><td>John Diere</td></tr>
<tr><td>Julie Re</td></tr>
</table>
Si nous voulons écrire une spécification pour une telle fonction de recherche qui recherchera et retournera une collection, alors la spécification sera la suivante -
<table concordion:execute = "addUser(#username)">
<tr><th concordion:set = "#username">Username</th></tr>
<tr><td>Robert De</td></tr>
<tr><td>John Diere</td></tr>
<tr><td>Julie Re</td></tr>
</table>
<p>Search for "<b concordion:set = "#searchString">J</b>" should return:</p>
<table concordion:verifyRows = "#username : search(#searchString)">
<tr><th concordion:assertEquals = "#username">Matching Usernames</th></tr>
<tr><td>John Diere</td></tr>
<tr><td>Julie Re</td></tr>
</table>
Lorsque Concordion analyse le document, il exécutera addUser () sur chaque ligne de la première table, puis définira searchString sur J. Ensuite, Concordion exécutera la fonction de recherche qui devrait renvoyer un objet Iterable avec un ordre d'itération prévisible, (par exemple a List, LinkedHashSet ou TreeSet), verifyRows s'exécute pour chaque élément de la collection et exécute la commande assertEquals.
Exemple
Laissez-nous mettre en place un IDE Eclipse fonctionnel et suivez les étapes ci-dessous pour créer une application Concordion -
Étape | La description |
---|---|
1 | Créez un projet avec un nom concordion et créez un package com.tutorialspoint sous lesrc dossier dans le projet créé. |
2 | Ajoutez les bibliothèques Concordion requises à l'aide de l' option Ajouter des fichiers JAR externes comme expliqué dans le chapitre Concordion - Première application . |
3 | Créez la classe Java System sous le package com.tutorialspoint . |
4 | Créez la classe Fixture SystemFixture sous le package specs.tutorialspoint . |
5 | Créez la spécification html System.html sous le package specs.tutorialspoint . |
6 | La dernière étape consiste à créer le contenu de tous les fichiers Java et le fichier de spécifications et d'exécuter l'application comme expliqué ci-dessous. |
Voici le contenu du fichier System.java -
package com.tutorialspoint;
import java.util.HashSet;
import java.util.Set;
import java.util.SortedSet;
import java.util.TreeSet;
public class System {
private Set<String> users = new HashSet<String>();
public void addUser(String username) {
users.add(username);
}
public Iterable<String> search(String searchString) {
SortedSet<String> matches = new TreeSet<String>();
for (String username : users) {
if (username.contains(searchString)) {
matches.add(username);
}
}
return matches;
}
}
Voici le contenu du fichier SystemFixture.java -
package specs.tutorialspoint;
import org.concordion.integration.junit4.ConcordionRunner;
import org.junit.runner.RunWith;
import com.tutorialspoint.System;
@RunWith(ConcordionRunner.class)
public class SystemFixture {
System system = new System();
public void addUser(String username) {
system.addUser(username);
}
public Iterable<String> search(String searchString) {
return system.search(searchString);
}
}
Voici le contenu du fichier System.html -
<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 add a partial search capability on user names:</p>
<div class = "example">
<h3>Example</h3>
<table concordion:execute = "addUser(#username)">
<tr><th concordion:set = "#username">Username</th></tr>
<tr><td>Robert De</td></tr>
<tr><td>John Diere</td></tr>
<tr><td>Julie Re</td></tr>
</table>
<p>Search for "<b concordion:set = "#searchString">J</b>" should return:</p>
<table concordion:verifyRows = "#username : search(#searchString)">
<tr><th concordion:assertEquals = "#username">Matching Usernames</th></tr>
<tr><td>John Diere</td></tr>
<tr><td>Julie Re</td></tr>
</table>
</div>
</body>
</html>
Une fois que vous avez terminé de créer les fichiers source et de spécification, laissez-nous exécuter l'application en tant que JUnit Test. Si tout va bien avec votre application, cela produira le résultat suivant -
C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp\concordion\specs\tutorialspoint\System.html
Successes: 2, Failures: 0
System.html est la sortie du test de Concordion.
Concordion - Commande Exécuter
La commande d'exécution Concordion peut être utilisée pour lier plusieurs spécifications ensemble et les afficher sur une page centrale. Cette commande peut exécuter toutes les spécifications, tout en affichant l'arrière-plan du lien en vert / rouge / gris selon le cas.
Nous allons maintenant créer deux spécifications et les lier ensemble. Nous réutiliserons les spécifications créées dans Concordion - Exécuter sur la liste et Concordion - Exécuter sur les chapitres du tableau en tant que Spécifications du système et Spécifications de la calculatrice.
Exemple
Laissez-nous mettre en place un IDE Eclipse fonctionnel et suivez les étapes ci-dessous pour créer une application Concordion -
Étape | La description |
---|---|
1 | Créez un projet avec un nom concordion et créez un package com.tutorialspoint sous lesrc dossier dans le projet créé. |
2 | Ajoutez les bibliothèques Concordion requises à l'aide de l' option Ajouter des fichiers JAR externes comme expliqué dans le chapitre Concordion - Première application . |
3 | Créez la classe Java System sous le package com.tutorialspoint . |
4 | Créez les classes Fixture SystemFixture , CalculatorFixture sous le package specs.tutorialspoint . |
5 | Créez des fichiers html de spécification System.html , Calculator.html sous le package specs.tutorialspoint . |
6 | La dernière étape consiste à créer le contenu de tous les fichiers Java et le fichier de spécifications et d'exécuter l'application comme expliqué ci-dessous. |
Voici le contenu du fichier System.java -
package com.tutorialspoint;
import org.concordion.api.MultiValueResult;
public class System {
public MultiValueResult split(String userName){
MultiValueResult result = new MultiValueResult();
String[] words = userName.split(" ");
result.with("firstName", words[0]).with("lastName", words[1]);
return result;
}
public int sum(int firstNumber, int secondNumber) {
return firstNumber + secondNumber;
}
}
Voici le contenu du fichier SystemFixture.java -
package specs.tutorialspoint;
import org.concordion.api.MultiValueResult;
import org.concordion.integration.junit4.ConcordionRunner;
import org.junit.runner.RunWith;
import com.tutorialspoint.System;
@RunWith(ConcordionRunner.class)
public class SystemFixture {
System system = new System();
public MultiValueResult split(String userName){
return system.split(userName);
}
}
Voici le contenu du fichier CalculatorFixture.java -
package specs.tutorialspoint;
import org.concordion.integration.junit4.ConcordionRunner;
import org.junit.runner.RunWith;
import com.tutorialspoint.System;
@RunWith(ConcordionRunner.class)
public class CalculatorFixture {
System system = new System();
public int sum(int firstNumber, int secondNumber) {
return system.sum(firstNumber, secondNumber);
}
}
Voici le contenu du fichier System.html -
<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 split full name of a
logged in user to its constituents by splitting name by whitespace:</p>
<div class = "example">
<h3>Example</h3>
<ul>
<li>The full name <span concordion:execute = "#result = split(#TEXT)">
Robert De</span> is to be splited as
<ul>
<li><span concordion:assertEquals = "#result.firstName">
Robert</span></li>
<li><span concordion:assertEquals = "#result.lastName">
De</span></li>
</ul>
</li>
<li>The full name <span concordion:execute = "#result = split(#TEXT)">
John Diere</span> is to be splited as
<ul>
<li><span concordion:assertEquals = "#result.firstName">
John</span></li>
<li><span concordion:assertEquals = "#result.lastName">
Diere</span></li>
</ul>
</li>
</ul>
</div>
<a concordion:run = "concordion" href = "Calculator.html">
Calculator Service Specifications</a>
</body>
</html>
Voici le contenu du fichier Calculator.html -
<html xmlns:concordion = "http://www.concordion.org/2007/concordion">
<head>
<link href = "../concordion.css" rel = "stylesheet" type = "text/css" />
</head>
<body>
<h1>Calculator Specifications</h1>
<p>We are building online calculator support in our website.</p>
<p>Following is the requirement to add two numbers:</p>
<div class = "example">
<h3>Example</h3>
<table>
<tr>
<th>First Number</th>
<th>Second Number</th>
<th>Sum</th>
</tr>
<tr concordion:execute = "#result = sum(#firstNumber, #secondNumber)">
<td concordion:set = "#firstNumber">2</td>
<td concordion:set = "#secondNumber">3</td>
<td concordion:assertEquals = "#result">5</td>
</tr>
<tr concordion:execute = "#result = sum(#firstNumber, #secondNumber)">
<td concordion:set = "#firstNumber">4</td>
<td concordion:set = "#secondNumber">5</td>
<td concordion:assertEquals = "#result">9</td>
</tr>
</table>
</div>
</body>
</html>
Une fois que vous avez terminé la création des fichiers source et de spécification, laissez-nous exécuter l'application en tant que JUnit Test. Si tout va bien avec votre application, cela produira le résultat suivant -
C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp\concordion\specs\tutorialspoint\System.html
Successes: 2, Failures: 0
C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp\concordion\specs\tutorialspoint\System.html
Successes: 6, Failures: 0
System.html est la sortie du test de Concordion.
Cliquez sur le lien Spécifications du service de la calculatrice. Vous verrez la sortie suivante -