Concordion - Primeira Aplicação
Vamos começar a programar com Concordion. Antes de começar a escrever seu primeiro exemplo usando o Concordion, você deve se certificar de que configurou o ambiente do Concordion corretamente, conforme explicado no tutorial Concordion - Configuração do ambiente . Também presumimos que você tenha um pouco de conhecimento prático do Eclipse IDE.
Então, vamos continuar a escrever um aplicativo Concordion simples que irá imprimir o seguinte teste de aceitação -
Example
When Robert logs in the system, a greeting "Hello Robert!" is displayed.
Etapa 1 - Criar projeto Java
A primeira etapa é criar um projeto Java simples usando Eclipse IDE. Siga a opçãoFile → New → Project e finalmente selecione Java Projectassistente da lista de assistentes. Agora nomeie seu projeto comoConcordion usando a janela do assistente da seguinte forma -
Assim que seu projeto for criado com sucesso, você terá o seguinte conteúdo em seu Project Explorer -
Etapa 2 - Adicionar bibliotecas necessárias
Vamos adicionar a concordância e suas dependências em nosso projeto. Para fazer isso, clique com o botão direito no nome do seu projetoconcordion e depois siga as opções disponíveis no menu de contexto: Build Path → Configure Build Path para exibir a janela Java Build Path da seguinte maneira -
Agora usa Add External JARs botão disponível em Libraries para adicionar o seguinte JAR principal da pasta Concordion.
- concordion-1.5.1
- hamcrest-core-1.3
- junit-4.12
- ognl-2.6.9
- xom-1.2.5
Etapa 3 - Criar arquivos de origem
Agora vamos criar arquivos de origem reais sob o concordionprojeto. Primeiro, precisamos criar um pacote chamadocom.tutorialspoint. Para fazer isso, clique com o botão direito emsrc na seção Package Explorer e siga a opção: New → Package.
A seguir, vamos criar o sistema .java arquivo no pacote com.tutorialspoint.
Aqui está o conteúdo de System.java arquivo -
package com.tutorialspoint;
public class System {
public String getGreeting(String userName){
return "Hello " + userName + "!";
}
}
Etapa 4 - Criar arquivos de especificação
Agora vamos criar arquivos de especificação reais sob o concordionprojeto. Primeiro, precisamos criar uma nova pasta de origem chamadaspecs. Esta pasta conterá arquivos de especificação como JUnitFixture ou executor de teste e arquivos html que são especificações. Agora precisamos criar um pacote chamadospecs.tutorialspoint. Para fazer isso, clique com o botão direito emspec na seção Package Explorer e siga a opção: New → Package.
Em seguida, vamos criar System.html e SystemFixture.javaarquivos no pacote specs.tutorialspoint. Depois disso, iremos adicionarconcordion.css sob a pasta de origem das especificações.
Aqui está o conteúdo do System.html arquivo -
<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>
Aqui está o conteúdo do SystemFixture.java arquivo -
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);
}
}
Aqui está o conteúdo do concordion.css arquivo -
* {
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;
}
Existem dois pontos importantes a serem observados sobre o arquivo html de especificação e o acessório de teste -
System.html é o arquivo html de especificação que usa o namespace de concordância.
<html xmlns:concordion="http://www.concordion.org/2007/concordion">
System.html usa o comando concordion: set para definir um valor de variáveis temporárias userName como Robert. Aqui, userName é o parâmetro a ser passado para o método getGreeting da fixação do sistema.
When <span concordion:set="#userName">Robert</span> logs in the system
System.html usa o comando concordion: assertEquals para verificar a saída da função getGreeting (userName) como Hello Robert !.
a greeting "<span concordion:assertEquals="getGreeting(#userName)">
Hello Robert!</span>" is displayed.
SystemFixture é um dispositivo de teste JUnit anotado com ConcordionRunner.class.
@RunWith(ConcordionRunner.class)
public class SystemFixture {}
SystemFixture tem um método getGreeting que retorna saudações ao usuário.
public String getGreeting(String userName){
return system.getGreeting(userName);
}
Etapa 5 - Executando o programa
Clique com o botão direito na área de conteúdo de SystemFixture e selecione Run as > JUnit Test Case. Você verá a seguinte saída com o sucesso do junit.
C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp\concordion\specs\tutorialspoint\System.html
Successes: 1, Failures: 0
System.html é o resultado da execução do teste Concordion.
Parabéns, você criou seu primeiro teste de aceitação de concordância com sucesso. Além disso, vamos começar a fazer algo mais interessante nos próximos capítulos.