Konkordion - Befehl ausführen

Mit dem Befehl Concordion run können mehrere Spezifikationen miteinander verknüpft und auf einer zentralen Seite angezeigt werden. Dieser Befehl kann alle Spezifikationen ausführen und den Hintergrund des Links entsprechend in Grün / Rot / Grau anzeigen.

Jetzt werden wir zwei Spezifikationen erstellen und diese miteinander verknüpfen. Wir werden die in Concordion - Execute on List und Concordion - Execute on Table- Kapitel erstellten Spezifikationen als Systemspezifikationen und Rechnerspezifikationen wiederverwenden.

Beispiel

Lassen Sie uns eine funktionierende Eclipse-IDE einrichten und führen Sie die folgenden Schritte aus, um eine Concordion-Anwendung zu erstellen.

Schritt Beschreibung
1 Erstellen Sie ein Projekt mit einem Namen concordion und erstellen Sie ein Paket com.tutorialspoint unter dersrc Ordner im erstellten Projekt.
2 Fügen Sie die erforderlichen Concordion-Bibliotheken mit der Option Externe JARs hinzufügen hinzu, wie im Kapitel Concordion - Erste Anwendung erläutert .
3 Erstellen Java - Klasse - System unter dem com.tutorialspoint Paket.
4 Erstellen Sie die Fixture-Klassen SystemFixture , CalculatorFixture unter dem Paket specs.tutorialspoint .
5 Erstellen Sie die Spezifikations-HTML-Dateien System.html , Calculator.html unter dem Paket specs.tutorialspoint .
6 Der letzte Schritt besteht darin, den Inhalt aller Java-Dateien und der Spezifikationsdatei zu erstellen und die Anwendung wie unten erläutert auszuführen.

Hier ist der Inhalt der Datei 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;
   }
}

Es folgt der Inhalt der Datei 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);
   }  
}

Es folgt der Inhalt der Datei 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);
   }
}

Es folgt der Inhalt der Datei 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>

Es folgt der Inhalt der Datei 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>

Wenn Sie mit dem Erstellen der Quell- und Spezifikationsdateien fertig sind, lassen Sie uns die Anwendung als JUnit-Test ausführen. Wenn mit Ihrer Anwendung alles in Ordnung ist, führt dies zu folgendem Ergebnis:

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 ist die Ausgabe des Concordion-Testlaufs.

Klicken Sie auf den Link Calculator Service Specifications. Sie sehen die folgende Ausgabe -