Concordion - Primera aplicación

Comencemos a programar con Concordion. Antes de comenzar a escribir su primer ejemplo usando Concordion, debe asegurarse de haber configurado su entorno Concordion correctamente como se explica en Concordion - Tutorial de configuración del entorno . También asumimos que tiene un poco de conocimiento práctico de Eclipse IDE.

Así que procedamos a escribir una aplicación simple de Concordion que imprimirá la siguiente prueba de aceptación:

Example
When Robert logs in the system, a greeting "Hello Robert!" is displayed.

Paso 1: crear un proyecto Java

El primer paso es crear un proyecto Java simple usando Eclipse IDE. Sigue la opciónFile → New → Project y finalmente seleccione Java Projectasistente de la lista de asistentes. Ahora nombre su proyecto comoConcordion utilizando la ventana del asistente de la siguiente manera:

Una vez que su proyecto se haya creado con éxito, tendrá el siguiente contenido en su Project Explorer -

Paso 2: agregue las bibliotecas necesarias

Agreguemos el concordion y sus dependencias en nuestro proyecto. Para hacer esto, haga clic derecho en el nombre de su proyectoconcordion y luego siga las opciones disponibles en el menú contextual: Build Path → Configure Build Path para mostrar la ventana Java Build Path de la siguiente manera:

Ahora usa Add External JARs botón disponible debajo Libraries pestaña para agregar el siguiente JAR principal de la carpeta Concordion.

  • concordion-1.5.1
  • hamcrest-core-1.3
  • junit-4.12
  • ognl-2.6.9
  • xom-1.2.5

Paso 3: crear archivos fuente

Ahora creemos archivos fuente reales bajo el concordionproyecto. Primero, necesitamos crear un paquete llamadocom.tutorialspoint. Para hacer esto, haga clic derecho ensrc en la sección del explorador de paquetes y siga la opción: New → Package.

A continuación, crearemos System .java archivo en el paquete com.tutorialspoint.

Aquí está el contenido de System.java archivo -

package com.tutorialspoint;

public class System {
   public String getGreeting(String userName){
      return "Hello " + userName + "!";
   }
}

Paso 4: crear archivos de especificaciones

Ahora creemos archivos de especificaciones reales bajo el concordionproyecto. Primero, necesitamos crear una nueva carpeta de origen llamadaspecs. Esta carpeta contendrá archivos de especificación como JUnitFixture o test runner y archivos html que son especificaciones. Ahora necesitamos crear un paquete llamadospecs.tutorialspoint. Para hacer esto, haga clic derecho enspec en la sección del explorador de paquetes y siga la opción: New → Package.

A continuación, crearemos System.html y SystemFixture.javaarchivos en el paquete specs.tutorialspoint. A partir de entonces, agregaremosconcordion.css en la carpeta de origen de especificaciones.

Aquí está el contenido de la System.html archivo -

<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>

Aquí está el contenido de la SystemFixture.java archivo -

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);
   }
}

Aquí está el contenido de la concordion.css archivo -

* {
   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;
}

Hay dos puntos importantes a tener en cuenta sobre el archivo html de especificación y el dispositivo de prueba:

  • System.html es el archivo html de especificación que usa el espacio de nombres concordion.

<html xmlns:concordion="http://www.concordion.org/2007/concordion">
  • System.html usa el comando concordion: set para establecer un valor de las variables temporales userName en Robert. Aquí, userName es el parámetro que se pasará al método getGreeting del accesorio System.

When <span concordion:set="#userName">Robert</span> logs in the system
  • System.html usa el comando concordion: assertEquals para verificar que la salida de la función getGreeting (nombre de usuario) sea Hello Robert!

a greeting "<span concordion:assertEquals="getGreeting(#userName)">
Hello Robert!</span>" is displayed.
  • SystemFixture es un dispositivo de prueba JUnit anotado con ConcordionRunner.class.

@RunWith(ConcordionRunner.class)
public class SystemFixture {}
  • SystemFixture tiene un método getGreeting que devuelve saludos al usuario.

public String getGreeting(String userName){
   return system.getGreeting(userName);
}

Paso 5: ejecución del programa

Haga clic con el botón derecho en el área de contenido de SystemFixture y seleccione Run as > JUnit Test Case. Verá el siguiente resultado con junit exitoso.

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.

Felicitaciones, ha creado su primera prueba de aceptación de Concordion con éxito. Además, comencemos a hacer algo más interesante en los próximos capítulos.