Concordion - Ejecutar comando
El comando de ejecución de Concordion se puede utilizar para vincular varias especificaciones y mostrarlas en una página central. Este comando puede ejecutar todas las especificaciones, mientras muestra el fondo del enlace en verde / rojo / gris según corresponda.
Ahora vamos a crear dos especificaciones y vincularlas. Reutilizaremos las especificaciones creadas en Concordion - Ejecutar en lista y Concordion - Ejecutar en los capítulos de Tabla como Especificaciones del sistema y Especificaciones de calculadora.
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 | Cree clases Fixture SystemFixture , CalculatorFixture en el paquete specs.tutorialspoint . |
5 | Cree archivos html de especificación System.html , Calculator.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 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;
}
}
A continuación se muestra el contenido del archivo 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);
}
}
A continuación se muestra el contenido del archivo 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);
}
}
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>
<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>
A continuación se muestra el contenido del archivo 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>
Una vez que haya terminado de crear archivos fuente y de especificación, permítanos ejecutar 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: 2, Failures: 0
C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp\concordion\specs\tutorialspoint\System.html
Successes: 6, Failures: 0
System.html es el resultado de la ejecución de prueba de Concordion.
Haga clic en el enlace Especificaciones del servicio de la calculadora. Verá la siguiente salida: