Concordion - Mapa que regresa
El comando de ejecución de Concordion se puede usar para obtener el resultado de un comportamiento en forma de un mapa mediante el cual podemos obtener múltiples salidas de un comportamiento. Por ejemplo, considere el siguiente requisito:
The full name Robert De is to be broken into its first name Robert and last name De.
Aquí necesitamos tener una función derramada que acepte un nombre de usuario y devuelva un objeto Map con el nombre y apellido como claves con los valores correspondientes para que podamos usarlos.
Si queremos escribir una especificación para dicha función dividida que aceptará un nombre de usuario y generará un objeto de resultado, la siguiente será la especificación:
<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>
Cuando Concordion analiza el documento, establecerá el valor de la variable especial #TEXT como el valor del elemento actual como "Robert De" y lo pasará a la función de división. Luego, ejecutará el método split () con parámetros como #TEXT usando el comando de ejecución y establecerá el resultado en la variable #result y, usando el mapa de resultados, imprimirá los valores firstName y lastName como salida.
Ejemplo
Tengamos un IDE de Eclipse en funcionamiento y sigamos los pasos que se indican a continuación para crear una aplicación Concordion:
Paso | Descripción |
---|---|
1 | Cree un proyecto con un nombre de concordion y cree un paquete com.tutorialspoint bajo elsrc carpeta en el proyecto creado. |
2 | Agregue las bibliotecas de Concordion necesarias mediante la opción Agregar JAR externos como se explica en el capítulo Concordion - Primera aplicación . |
3 | Cree un sistema de clases Java en el paquete com.tutorialspoint . |
4 | Crear Fixture clase SystemFixture bajo la specs.tutorialspoint paquete. |
5 | Cree Specification html System.html en el paquete specs.tutorialspoint . |
6 | El paso final es crear el contenido de todos los archivos Java y el archivo de especificación y ejecutar la aplicación como se explica a continuación. |
Aquí está el contenido del archivo 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;
}
}
A continuación se muestra el contenido del archivo 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);
}
}
A continuación se muestra el contenido del archivo 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>
Una vez que haya terminado de crear los archivos fuente y de especificación, ejecutemos la aplicación como JUnit Test. Si todo está bien con su aplicación, producirá el siguiente resultado:
C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp\concordion\specs\tutorialspoint\System.html
Successes: 1, Failures: 0
System.html es el resultado de la ejecución de prueba de Concordion.