BDD (Behavior Driven Development)
BDD • Cucumber • SpecFlow • Gherkin • Testes Automatizados • Configurações • Licença
♻️ BDD for user stories.
BDD
BDD (Behavior Driven Development) ou desenvolvimento orientado por comportamento é uma técnica de desenvolvimento Ágil que encoraja colaboração entre desenvolvedores, setores de qualidade e pessoas não-técnicas ou de negócios num projeto de software e se relaciona com o conceito de verificação e validação.
– Wikipedia –
Cucumber
É um framework para a prática do BDD. Através dele escrevemos as especificações das funcionalidades utilizando a linguagem Gherkin.
Neste projeto utilizei o Cucumber como framework para implementar o BDD.
SpecFlow
Também é um framework para a prática do BDD, normalmente utilizado em projetos e soluções .NET.
O SpecFlow suporta o Gherkin, mesma sintaxe utilizada com o Cucumber.
Gherkin
As user stories são descritas em linguagem natural possibilitando o entendimento tanto pela equipe técnica quanto pela área de negócios.
O comportamento da funcionalidade é descrito utilizando as palavras reservadas abaixo:
Dado ...
Quando ...
Então ...
Veja um exemplo do comportamento de uma funcionalidade descrito com Gherkin clicando aqui.
Testes
Para automatizar os testes descritos nos arquivos .feature são necessários alguns pré-requisitos, descritos à seguir.
Pré-requisitos
- Java development kit (JDK 8) - Release 10.0.2
Ferramentas
- Eclipse IDE - Versão Photon - Release 4.8.0
- Maven - Versão 4.0.0
- Cucumber Eclipse Plugin
- JUnit - Versão 4.12
Configuração
Procedimentos para a configuração do ambiente de testes.
1. Instalação do Eclipse IDE
- Download do Eclipse
- Descompactar o arquivo e clicar sobre o executável para iniciar a instalação.
2. Instalação do Java JDK 8
- Download do instalador do Java JDK
- Aceitar a licença clicando em "Accept License Agreement".
- Clicar no link para download referente ao seu sistema operacional (Windows x64).
- Após o download, executar a instalação (next, next, finish).
3. Configuração das variáveis de ambiente
-
Adicionar JAVA_HOME nas variáveis de ambiente:
- Meu Computador > Botão direito: Propriedades > Configurações avançadas do sistema;
- Propriedades do sistema: Aba 'Avançado' > Botão "Variáveis do ambiente";
- Na área "Variáveis do sistema", clicar no botão 'Novo...';
- Na janela "Nova variável de sistema", preencher o campo 'Nome da variável' com JAVA_HOME e o campo 'Valor da variável' com o caminho do diretório onde o Java foi instalado.
-
Atualizar o PATH das variáveis de ambiente:
- Ainda na área "Variáveis do sistema", selecionar a variável "Path" > botão Editar.
- Acrescentar ao final das configurações > ;%JAVA_HOME%\bin > botão OK.
4. Validar a configuração das variáveis de ambiente
- Acessar o prompt de comando e digitar:
java -version
O sistema deve apresentar a versão do Java instalada.
- Ainda no prompt de comando, digitar:
javac -version
O sistema deve apresentar a versão do compilador Java instalada.
Versão da biblioteca JRE
ATENÇÃO!
Valide se a biblioteca do JRE está na mesma versão da biblioteca JRE baixada e, caso não esteja, siga os passos abaixo.
- Clique com o botão direito no projeto > opção 'propriedades' > Java Build Path > Libraries > remover a biblioteca.
- Na sequência clicar no botão 'Add library' > selecionar a versão atual da biblioteca > next > apply and close.
5. Instalação do Cucumber Eclipse Plugin
Para instalar o Cucumber Eclipse Plugin no Eclipse, siga os passos abaixo:
-
Acesse o Menu Help > Eclipse Marketplace > Search "Cucumber"
-
Em seguida clique no botão Install.
6. Configuração das dependências no Maven
-
Criar um projeto MAVEN através do Eclipse IDE em File > New > Other > Maven > Maven Project > opção "Create a simple project".
-
Informar o Group id (link da empresa), o Artfact id (nome do projeto) > botão Finish.
7. Atualizar o arquivo POM.xml
Para adicionar as bibliotecas do Cucumber Eclipse Plugin e suas dependências, digitar no arquivo "POM.xml":
<dependencies>
<dependency>
<groupId>info.cukes</groupId>
<artifactId>cucumber-java</artifactId>
<version>1.2.5</version>
</dependency>
</dependencies>
Execução dos testes
Execução de testes com o Cucumber
Para executar os testes com o Cucumber, siga os passos abaixo:
- Acesse no Eclipse o botão Run > Run As > "Cucumber Feature".
Execução de testes com o JUnit
Para executar os testes com o JUnit, siga os passos abaixo:
- Acesse o site MVN Repository e efetue uma busca por 'cucumber'
- Clique na opção "Cucumber JVM: JUnit" > selecione a versão 1.2.5
- Copie o trecho de código abaixo e cole no arquivo 'pom.xml' do projeto:
<dependencies>
<dependency>
<groupId>info.cukes</groupId>
<artifactId>cucumber-junit</artifactId>
<version>1.2.5</version>
<scope>test</scope>
</dependency>
</dependencies>
Criação da classe Runner
Crie a classe Runner para configurar o comportamento dos resultados de teste a cada execução.
import org.junit.runner.RunWith;
import cucumber.api.CucumberOptions;
import cucumber.api.SnippetType;
import cucumber.api.junit.Cucumber;
@RunWith(Cucumber.class)
@CucumberOptions(plugin = "pretty", monochrome = true, snippets = SnippetType.CAMELCASE, dryRun = false,
strict = false)
public class Runner {
}
Após importar o JUnit e criar a class 'Runner' no projeto, acesse o botão Run > Run As > JUnit Test.
License
⚖️ MIT License © Luciana Muniz Freire.