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 fractionnée 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.