Concordione - Restituzione di oggetti
Il comando Concordion execute può essere utilizzato per ottenere il risultato di un comportamento sotto forma di oggetto utilizzando il quale possiamo ottenere più output di un comportamento. Ad esempio, considera il seguente requisito:
The full name Robert De is to be broken into first name Robert and last name De.
Qui abbiamo bisogno di una funzione split che accetti un nome utente e restituisca un oggetto risultato avente il nome e il cognome come proprietà in modo da poterli utilizzare.
Se vogliamo scrivere una specifica per una tale funzione di divisione che si aspetta un nome utente e restituisce un oggetto risultato, la seguente sarà la specifica:
<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>
Quando Concordion analizza il documento, imposterà il valore della variabile speciale #TEXT come valore dell'elemento corrente come "Robert De" e lo passerà alla funzione split. Quindi eseguirà il metodo split () con parametri come #TEXT utilizzando il comando execute e imposterà il risultato nella variabile #result e utilizzando l'oggetto risultato, stamperà le proprietà firstName e lastName come output.
Esempio
Mettiamo in atto un IDE Eclipse funzionante e seguiamo i passaggi indicati di seguito per creare un'applicazione Concordion -
Passo | Descrizione |
---|---|
1 | Crea un progetto con il nome concordion e crea un pacchetto com.tutorialspoint sottosrc cartella nel progetto creato. |
2 | Aggiungere le librerie Concordion richieste utilizzando l' opzione Add External JARs come spiegato nel capitolo Concordion - First Application . |
3 | Crea un sistema di classe Java , Risultato nel pacchetto com.tutorialspoint . |
4 | Crea la classe Fixture SystemFixture nel pacchetto specs.tutorialspoint . |
5 | Crea specifica html System.html nel pacchetto specs.tutorialspoint . |
6 | Il passaggio finale consiste nel creare il contenuto di tutti i file Java e del file delle specifiche ed eseguire l'applicazione come spiegato di seguito. |
Ecco il contenuto del file 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;
}
}
Ecco il contenuto del file 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;
}
}
Di seguito è riportato il contenuto del file 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);
}
}
Di seguito è riportato il contenuto del file 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 volta che hai finito di creare i file sorgente e di specifica, eseguiamo l'applicazione come JUnit Test. Se tutto va bene con la tua applicazione, produrrà il seguente risultato:
C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp\concordion\specs\tutorialspoint\System.html
Successes: 1, Failures: 0
System.html è l'output dell'esecuzione di test Concordion.