Concordion - Retour de MultiValueResult

La commande d'exécution 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 fractionnée 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.