2. BDD
✔ BDD - Behavior Driven Development
✔ Desenvolvimento Guiado por Comportamento
✔ Técnica de desenvolvimento ágil que utiliza
linguagem padronizada para descrever o
comportamento do software.
✔ Potencializa a colaboração entre:
✔ Desenvolvedores
✔ Setores de qualidade
✔ Pessoas não-técnicas ou de negócios em um projeto
de software
3. Behat
● Behat é uma ferramenta que utiliza BDD
Site do projeto: http://behat.org
● Nele o teste descreve a história e a partir
dessa descrição, ela pode rodar como um
teste automatizado.
– Exemplo:
Dado que estou na tela de login
Quando eu informo o usuário
E eu informo a senha
E eu confirmo
Então eu deveria vizualizar a tela inicial
4. Mink
Simula a interação entre o browser e a aplicação web.
Site do projeto: http://mink.behat.org
// Carrega uma página no browser
$session->visit('http://www.consegi.gov.br/');
// Carrega outra página
$session->visit('http://www.serpro.gov.br')
// Usa os controles de histórico
$session->reload();
$session->back();
$session->forward();
5. Selenium Webdriver
● Um dos drivers de interface com os
navegadores.
● Aceita comandos e envia para o navegador
● Portável para a maioria dos navegadores
Navegadores e versões suportadas:
Firefox Chrome Opera IE
4 - 10 * 8 e 9 7 - 9
6. Sintaxe Gherkin
● Gherkin é o padrão de escrita utilizado pelo Behat para descrição dos
comportamentos
●
Utiliza edentação e palavras reservadas para definir a estrutura das
funcionalidades
● Features
– Cada funcionalidade deve ser descrita em um arquivo .feature
● Caminho: ...homebehat/features
– Cada Feature é composta por um grupo de Scenarios
7. Sintaxe Gherkin
● Estrutura:
Feature: Descrição concisa da funcionalidade
A fim de atingir um objetivo
Um ator específico
Deseja realizar uma ação que agregue valor ao negócio em questão
Scenario: Um situação determinável
Given alguma pré-condição
And outra pré-condição
When alguma ação do ator
And outra ação
Then alguma resposta testável é verificada
And outra verificação é realizada
Scenario: Outra situação
...
8. Feature Context
● Podemos criar comportamentos personalizados
que poderão ser reutilizados em todas as
Features
– ...homebehat/features/bootstrap/FeatureContext.php
10. Vamos à prática!
● Abra a “Cheat Sheet” do Behat
– http://docs.behat.org/
● Configurando o Gedit com HighLight para o
Gherkin
– Pesquise no oráculo por: gedit gherkin highlight
– Abra o primeiro resultado:
http://ranskills.wordpress.com/2011/07/11/how-to-create
● Crie um arquivo com nome cadpinoquio.feature
dentro da pasta features
11. Primeiro Exemplo
@cadpinoquio @javascript
Scenario: Cadastro do Pinóquio
Afim de registrar um usuário no sistema
Qualquer usuário
Deseja inserir seus dados e verificar a confirmação
Given I am on "/pinoquio.html"
When I fill in "name" with "Exemplo"
And I fill in "email" with "exemplo@consegi.gov.br"
And I select "M" from "sex"
And I click in "#submit"
Then I should see "Cadastro efetuado com sucesso"
And I should see "Exemplo"
And I should see "exemplo@consegi.gov.br"
And I should see "M"
12. Testando...
● Abrir um terminal e digitar:
java -jar /home/consegi/selenium-server-
standalone-2.25.0.jar
● Abrir outro terminal e digitar:
cd ~/demo-behat
./bin/behat --tags=”@meuform”
13. Baby Steps
● Desenvolvendo
– Crie um arquivo /var/www/pinoquio.html
– Insira um conteúdo que resolva o primeiro erro do
teste
– Salve e rode o teste novamente
– Repita o ciclo até que o teste não possua erro.