SlideShare ist ein Scribd-Unternehmen logo
1 von 17
Downloaden Sie, um offline zu lesen
Cucumber : Características
do arquivo ".feature" e sua
sintaxe
Disciplina: Engenharia de
Software Avançada
Behaviour Driven Development
● Pode ser considerada uma evolução de um conjunto de
boas práticas do TDD.
○ Principal: outside-in - [começar com o teste falhando]
● Testes de aceitação
○ Feedback
○ Unidade = Estamos fazendo certo o produto
○ Aceitação = Estamos fazendo o produto certo
● Exemplos baseados em comportamento
○ Comportamento = Caracteristica = Feature
○ Escrever testes de aceitação como exemplos a fim de
que todos possam lê-los e compreendê-los.
Ok, e se você não vai usar Test- Driven?
● Cucumber facilita outside-in, mas não força
você a usá-la desta forma
● Cucumber fornece testes legíveis e atrativos
para todas as partes do time inclusiva as
não técnicas, o que possibilita a inclusão de
todos neste processo
● Aumento de comunicação, amenizando
ambiguidade
● Especificações executáveis = documentação
viva
● Regressão = garantia
Cucumber
● É uma ferramenta de linha de comando
● Quando rodada, lê os arquivos de texto chamados de feature
(estes escritos em texto plano) e examina os scenarios contidos
nestes arquivos e rodam estes scenarios. Cada cenário contém
uma lista de steps que dizem ao Cucumber o que deve ser feito.
● Cucumber compreende os arquivos .feature porque estes seguem
um conjunto de regras de sintaxe chamado de Gherkin.
● Após a criação da feature, quando rodada, a ferramenta
proporciona um esqueleto para guiar o desenvolvimento do arquivo
que irá conter os step_definitions daquela feature.
● O arquivo contido na pasta support dá definições da configuração
do ambiente de teste, como: webdriver, padrão de seletor, timeout,
bibliotecas de automação...
● Cucumber trabalha com expressões regulares
● "Baby steps"
Abstração Cucumber
Estrutura de pastas
/feature
/step_definititions /supportexemplo1.feature
env.rbexemplo1.rb
exemplo2.rb
exemplo2.feature
Cucumber testing stack
Sintaxe Gherkin
● Feature/Funcionalidade **
○ Todo arquivo gherkin começa com a palavra chave
Feature
○ Neste campo é atribuido o nome da feature e sua
descrição contendo todas as informações consideradas
necessárias para compreender o contexto daquela
estória.
○ Durante a execução ele é ignorado.
**(cenários em português exigem a inserção no inicio do arquivo "# language: pt" e "#enconding : utf -8"
Sintaxe Gherkin
● Feature/Funcionalidade **
Ex:
Feature: Exemplo - Primeira feature.
Este exemplo tem por objetivo contextualizar o que
será descrito ao longo do arquivo como comportamento do sistema, e
que sob esta palavra chave podem ser escritas quantas linhas forem
necessárias.
Aceitando também linhas em branco. Esta feature, irá abordar o
cadastro de clientes de um sistema x, visto que o mesmo só poderá ser
realizado se todos os campos obrigatórios forem preenchidos. Campos
obrigatórios: Nome e CPF.
Sintaxe Gherkin
● Background/Contexto:
○ Sob esta palavra chave são descritos os requisitos para
aquela feature.
Ex:
Contexto:
Dado que eu estou logado como admin
E estou visualizando a página de cadastro de clientes
Sintaxe Gherkin
● Scenario/Cenario:
○ Cada cenário é um exemplo único que demonstra como
o sistema deve se comportar em uma situação em
específica.
Ex:
Cenário: Cadastrar um cliente
Quando eu opto por cadastrar um novo cliente
E insiro o nome como "Adão"
E o CPF "12545666"
E eu cliclo no botão Gravar
Então devo ver "Cliente cadastrado com sucesso!"
Sintaxe Gherkin
● Scenario Outline/ Examples:
○ Aplica técnica data-driven separando os dados do
restante do codigo. Múltiplos dados.
Sintaxe Gherkin
● Estrutura básica
■ Given - Dado [O contexto]
■ When - Quando [O evento]
■ Then - Então [A saída]
----- Outras keywords:
○ But - Mas
○ And - E
○ # comentários....
O símbolo *, pode ser utilizado para
substituir as palavras chave, Given,
When, Then, But e And.. foi criado a fim
de suprir a reclamação do sentido de
'engessamento' que as palavras citadas
pudessem causas
Sintaxe Gherkin
● Uso de bullets
---------------------------------------------------
Funcionalidade: <descrição da
funcionalidade>
Como um <usuário/ator>
Eu quero <meta a ser alcançada>
De modo que <a razão para alcançar a
meta>
Cenário: <descrição do teste>
Dado <um estado conhecido>
Quando <um determinado evento ocorre>
Então <isso deve ocorrer>
cucumber --i18n pt
| name | Portuguese |
| native | português |
| feature | Funcionalidade |
| background | Contexto |
| scenario | Cenário / Cenario |
| scenario_outline | Esquema do Cenário / Esquema do Cenario |
| examples | Exemplos |
| given | * / Dado |
| when | * / Quando |
| then | * / Então / Entao |
| and | * / E |
| but | * / Mas |
Entendendo: Como criar os arquivos
.feature
● Primeiramente, cria-se o diretório chamado
features, e dentro dele irão existir todas os .
feature do projeto (que é um arquivo de
texto).
● Utilizando um editor de texto cria-se o
arquivo texto e o salva como .feature

Weitere ähnliche Inhalte

Was ist angesagt?

Curso JavaScript - Aula sobre DOM e Ajax
Curso JavaScript - Aula sobre DOM e AjaxCurso JavaScript - Aula sobre DOM e Ajax
Curso JavaScript - Aula sobre DOM e AjaxTiago Antônio da Silva
 
Introdução ao desenvolvimento da web.pptx
Introdução ao desenvolvimento da web.pptxIntrodução ao desenvolvimento da web.pptx
Introdução ao desenvolvimento da web.pptxMarceloRosenbrock1
 
Banco de questões qualidade de software
Banco de questões qualidade de softwareBanco de questões qualidade de software
Banco de questões qualidade de softwareBruno Nascimento
 
Curso de HTML5 - Aula 01
Curso de HTML5 - Aula 01   Curso de HTML5 - Aula 01
Curso de HTML5 - Aula 01 Léo Dias
 
10 Java Script - Exemplos práticos
10 Java Script - Exemplos práticos10 Java Script - Exemplos práticos
10 Java Script - Exemplos práticosCentro Paula Souza
 
Projeto de Banco de Dados: Gerenciamento de Locadora de Vídeo (parte escrita)
Projeto de Banco de Dados: Gerenciamento de Locadora de Vídeo (parte escrita)Projeto de Banco de Dados: Gerenciamento de Locadora de Vídeo (parte escrita)
Projeto de Banco de Dados: Gerenciamento de Locadora de Vídeo (parte escrita)Gleyciana Garrido
 
Introdução a Linguagem Java
Introdução a Linguagem JavaIntrodução a Linguagem Java
Introdução a Linguagem JavaUFPA
 
Java: Composicao e Array List
Java: Composicao e Array ListJava: Composicao e Array List
Java: Composicao e Array ListArthur Emanuel
 
Modelo Conceitual MER
Modelo Conceitual MERModelo Conceitual MER
Modelo Conceitual MERJoel Santos
 
Análise Orientada a Objetos - Objetos E Classes
Análise Orientada a Objetos  -   Objetos E ClassesAnálise Orientada a Objetos  -   Objetos E Classes
Análise Orientada a Objetos - Objetos E ClassesCursoSENAC
 
Análise de ferramentas para gestão de regras de negócio em sistemas de inform...
Análise de ferramentas para gestão de regras de negócio em sistemas de inform...Análise de ferramentas para gestão de regras de negócio em sistemas de inform...
Análise de ferramentas para gestão de regras de negócio em sistemas de inform...Bruno Dadalt Zambiazi
 

Was ist angesagt? (20)

Exemplos de User Stories
Exemplos de User StoriesExemplos de User Stories
Exemplos de User Stories
 
Aula 6 - Qualidade de Software
Aula 6 - Qualidade de SoftwareAula 6 - Qualidade de Software
Aula 6 - Qualidade de Software
 
Aula javascript
Aula  javascriptAula  javascript
Aula javascript
 
Exemplo de Plano de testes
Exemplo de Plano de testes Exemplo de Plano de testes
Exemplo de Plano de testes
 
Curso JavaScript - Aula sobre DOM e Ajax
Curso JavaScript - Aula sobre DOM e AjaxCurso JavaScript - Aula sobre DOM e Ajax
Curso JavaScript - Aula sobre DOM e Ajax
 
Introdução ao desenvolvimento da web.pptx
Introdução ao desenvolvimento da web.pptxIntrodução ao desenvolvimento da web.pptx
Introdução ao desenvolvimento da web.pptx
 
Curso de Desenvolvimento Web - Módulo 02 - CSS
Curso de Desenvolvimento Web - Módulo 02 - CSSCurso de Desenvolvimento Web - Módulo 02 - CSS
Curso de Desenvolvimento Web - Módulo 02 - CSS
 
Banco de questões qualidade de software
Banco de questões qualidade de softwareBanco de questões qualidade de software
Banco de questões qualidade de software
 
Curso de HTML5 - Aula 01
Curso de HTML5 - Aula 01   Curso de HTML5 - Aula 01
Curso de HTML5 - Aula 01
 
Aula01-JavaScript
Aula01-JavaScriptAula01-JavaScript
Aula01-JavaScript
 
10 Java Script - Exemplos práticos
10 Java Script - Exemplos práticos10 Java Script - Exemplos práticos
10 Java Script - Exemplos práticos
 
Projeto de Banco de Dados: Gerenciamento de Locadora de Vídeo (parte escrita)
Projeto de Banco de Dados: Gerenciamento de Locadora de Vídeo (parte escrita)Projeto de Banco de Dados: Gerenciamento de Locadora de Vídeo (parte escrita)
Projeto de Banco de Dados: Gerenciamento de Locadora de Vídeo (parte escrita)
 
Curso de Desenvolvimento Web - Módulo 03 - JavaScript
Curso de Desenvolvimento Web - Módulo 03 - JavaScriptCurso de Desenvolvimento Web - Módulo 03 - JavaScript
Curso de Desenvolvimento Web - Módulo 03 - JavaScript
 
Introdução a Linguagem Java
Introdução a Linguagem JavaIntrodução a Linguagem Java
Introdução a Linguagem Java
 
Aula02 - JavaScript
Aula02 - JavaScriptAula02 - JavaScript
Aula02 - JavaScript
 
JPA - Java Persistence API
JPA - Java Persistence APIJPA - Java Persistence API
JPA - Java Persistence API
 
Java: Composicao e Array List
Java: Composicao e Array ListJava: Composicao e Array List
Java: Composicao e Array List
 
Modelo Conceitual MER
Modelo Conceitual MERModelo Conceitual MER
Modelo Conceitual MER
 
Análise Orientada a Objetos - Objetos E Classes
Análise Orientada a Objetos  -   Objetos E ClassesAnálise Orientada a Objetos  -   Objetos E Classes
Análise Orientada a Objetos - Objetos E Classes
 
Análise de ferramentas para gestão de regras de negócio em sistemas de inform...
Análise de ferramentas para gestão de regras de negócio em sistemas de inform...Análise de ferramentas para gestão de regras de negócio em sistemas de inform...
Análise de ferramentas para gestão de regras de negócio em sistemas de inform...
 

Ähnlich wie Como o Cucumber Funciona

BDD com specflow e selenium webdriver
BDD com specflow e selenium webdriverBDD com specflow e selenium webdriver
BDD com specflow e selenium webdriverCristian Mathias
 
Webinar: Arquitetura de software para sistemas embarcados
Webinar: Arquitetura de software para sistemas embarcadosWebinar: Arquitetura de software para sistemas embarcados
Webinar: Arquitetura de software para sistemas embarcadosEmbarcados
 
Nem tudo é Pepino: Cucumber x Robot Framework
Nem tudo é Pepino: Cucumber x Robot FrameworkNem tudo é Pepino: Cucumber x Robot Framework
Nem tudo é Pepino: Cucumber x Robot FrameworkRodrigo Matola
 
Por quê você deve utilizar TDD?
Por quê você deve utilizar TDD?Por quê você deve utilizar TDD?
Por quê você deve utilizar TDD?Wellington Moreira
 
Specificationby example
Specificationby example Specificationby example
Specificationby example Laís Berlatto
 
Mocks, Stubs e Fakes - Developers-SP - Julho-2017
Mocks, Stubs e Fakes - Developers-SP - Julho-2017Mocks, Stubs e Fakes - Developers-SP - Julho-2017
Mocks, Stubs e Fakes - Developers-SP - Julho-2017Renato Groff
 
Testes automatizados.pptx
Testes automatizados.pptxTestes automatizados.pptx
Testes automatizados.pptxCarlos Gonzaga
 
Teste de Integração - Unidade III
Teste de Integração - Unidade IIITeste de Integração - Unidade III
Teste de Integração - Unidade IIIJoão Lourenço
 
Protractor style guide - Agile Testers Conference 2016
Protractor style guide - Agile Testers Conference 2016Protractor style guide - Agile Testers Conference 2016
Protractor style guide - Agile Testers Conference 2016Walmyr Lima e Silva Filho
 
BDD (Behavior-Driven Development)
BDD (Behavior-Driven Development)BDD (Behavior-Driven Development)
BDD (Behavior-Driven Development)Renato Groff
 
BDD (Behavior-Driven Development) - Setembro/2015
BDD (Behavior-Driven Development) - Setembro/2015BDD (Behavior-Driven Development) - Setembro/2015
BDD (Behavior-Driven Development) - Setembro/2015Renato Groff
 
Bancos de dados open source
Bancos de dados open sourceBancos de dados open source
Bancos de dados open sourceRodrigo Aurélio
 
Boas práticas no desenvolvimento de software
Boas práticas no desenvolvimento de softwareBoas práticas no desenvolvimento de software
Boas práticas no desenvolvimento de softwareFelipe
 

Ähnlich wie Como o Cucumber Funciona (20)

BDD com specflow e selenium webdriver
BDD com specflow e selenium webdriverBDD com specflow e selenium webdriver
BDD com specflow e selenium webdriver
 
BDD em Ação
BDD em AçãoBDD em Ação
BDD em Ação
 
Webinar: Arquitetura de software para sistemas embarcados
Webinar: Arquitetura de software para sistemas embarcadosWebinar: Arquitetura de software para sistemas embarcados
Webinar: Arquitetura de software para sistemas embarcados
 
Nem tudo é Pepino: Cucumber x Robot Framework
Nem tudo é Pepino: Cucumber x Robot FrameworkNem tudo é Pepino: Cucumber x Robot Framework
Nem tudo é Pepino: Cucumber x Robot Framework
 
Por quê você deve utilizar TDD?
Por quê você deve utilizar TDD?Por quê você deve utilizar TDD?
Por quê você deve utilizar TDD?
 
Specificationby example
Specificationby example Specificationby example
Specificationby example
 
Linguagem C - Funções
Linguagem C - FunçõesLinguagem C - Funções
Linguagem C - Funções
 
BDD com SpecFlow
BDD com SpecFlowBDD com SpecFlow
BDD com SpecFlow
 
Bdd com spec flow
Bdd com spec flowBdd com spec flow
Bdd com spec flow
 
Mocks, Stubs e Fakes - Developers-SP - Julho-2017
Mocks, Stubs e Fakes - Developers-SP - Julho-2017Mocks, Stubs e Fakes - Developers-SP - Julho-2017
Mocks, Stubs e Fakes - Developers-SP - Julho-2017
 
Testes automatizados.pptx
Testes automatizados.pptxTestes automatizados.pptx
Testes automatizados.pptx
 
Apresentação testes white box
Apresentação testes white boxApresentação testes white box
Apresentação testes white box
 
Codigo limpo
Codigo limpoCodigo limpo
Codigo limpo
 
Teste de Integração - Unidade III
Teste de Integração - Unidade IIITeste de Integração - Unidade III
Teste de Integração - Unidade III
 
Protractor style guide - Agile Testers Conference 2016
Protractor style guide - Agile Testers Conference 2016Protractor style guide - Agile Testers Conference 2016
Protractor style guide - Agile Testers Conference 2016
 
BDD (Behavior-Driven Development)
BDD (Behavior-Driven Development)BDD (Behavior-Driven Development)
BDD (Behavior-Driven Development)
 
BDD (Behavior-Driven Development) - Setembro/2015
BDD (Behavior-Driven Development) - Setembro/2015BDD (Behavior-Driven Development) - Setembro/2015
BDD (Behavior-Driven Development) - Setembro/2015
 
Specflow - Criando uma ponte entre desenvolvedores.
Specflow - Criando uma ponte entre desenvolvedores.Specflow - Criando uma ponte entre desenvolvedores.
Specflow - Criando uma ponte entre desenvolvedores.
 
Bancos de dados open source
Bancos de dados open sourceBancos de dados open source
Bancos de dados open source
 
Boas práticas no desenvolvimento de software
Boas práticas no desenvolvimento de softwareBoas práticas no desenvolvimento de software
Boas práticas no desenvolvimento de software
 

Mehr von Laís Berlatto

Cucumber - Um breve Review
Cucumber - Um breve ReviewCucumber - Um breve Review
Cucumber - Um breve ReviewLaís Berlatto
 
Testes de usabilidade
Testes de usabilidade Testes de usabilidade
Testes de usabilidade Laís Berlatto
 
Aplicação de técnicas de processamento de linguagem natural para ferramenta P...
Aplicação de técnicas de processamento de linguagem natural para ferramenta P...Aplicação de técnicas de processamento de linguagem natural para ferramenta P...
Aplicação de técnicas de processamento de linguagem natural para ferramenta P...Laís Berlatto
 
Programação Diversitária
Programação DiversitáriaProgramação Diversitária
Programação DiversitáriaLaís Berlatto
 
Cucumber: um breve review
Cucumber: um breve reviewCucumber: um breve review
Cucumber: um breve reviewLaís Berlatto
 
Specification By Example: Estudo de caso em uma software house
Specification By Example: Estudo de caso em uma software houseSpecification By Example: Estudo de caso em uma software house
Specification By Example: Estudo de caso em uma software houseLaís Berlatto
 
Data encryption standard DES & 3DES
Data encryption standard DES & 3DESData encryption standard DES & 3DES
Data encryption standard DES & 3DESLaís Berlatto
 
Histórico da informática
Histórico da informáticaHistórico da informática
Histórico da informáticaLaís Berlatto
 
Especificações da ISO para gestão de Segurança da Informação
Especificações da ISO para gestão de Segurança da InformaçãoEspecificações da ISO para gestão de Segurança da Informação
Especificações da ISO para gestão de Segurança da InformaçãoLaís Berlatto
 
Modelos de Previsão para sistemas de turbulência
Modelos de Previsão para sistemas de turbulênciaModelos de Previsão para sistemas de turbulência
Modelos de Previsão para sistemas de turbulênciaLaís Berlatto
 
Teste de Usabilidade e Percurso Cognitivo
Teste de Usabilidade e Percurso CognitivoTeste de Usabilidade e Percurso Cognitivo
Teste de Usabilidade e Percurso CognitivoLaís Berlatto
 

Mehr von Laís Berlatto (20)

Cucumber - Um breve Review
Cucumber - Um breve ReviewCucumber - Um breve Review
Cucumber - Um breve Review
 
Testes de usabilidade
Testes de usabilidade Testes de usabilidade
Testes de usabilidade
 
Aplicação de técnicas de processamento de linguagem natural para ferramenta P...
Aplicação de técnicas de processamento de linguagem natural para ferramenta P...Aplicação de técnicas de processamento de linguagem natural para ferramenta P...
Aplicação de técnicas de processamento de linguagem natural para ferramenta P...
 
Ruby
RubyRuby
Ruby
 
E-business
E-businessE-business
E-business
 
Programação Diversitária
Programação DiversitáriaProgramação Diversitária
Programação Diversitária
 
Cucumber: um breve review
Cucumber: um breve reviewCucumber: um breve review
Cucumber: um breve review
 
Specification By Example: Estudo de caso em uma software house
Specification By Example: Estudo de caso em uma software houseSpecification By Example: Estudo de caso em uma software house
Specification By Example: Estudo de caso em uma software house
 
Bluetooth
BluetoothBluetooth
Bluetooth
 
Cloud computing
Cloud computingCloud computing
Cloud computing
 
Data encryption standard DES & 3DES
Data encryption standard DES & 3DESData encryption standard DES & 3DES
Data encryption standard DES & 3DES
 
Linguagem R
Linguagem RLinguagem R
Linguagem R
 
Amostragem
AmostragemAmostragem
Amostragem
 
Estudo de caso
Estudo de casoEstudo de caso
Estudo de caso
 
Ética hacker
Ética hackerÉtica hacker
Ética hacker
 
Histórico da informática
Histórico da informáticaHistórico da informática
Histórico da informática
 
Especificações da ISO para gestão de Segurança da Informação
Especificações da ISO para gestão de Segurança da InformaçãoEspecificações da ISO para gestão de Segurança da Informação
Especificações da ISO para gestão de Segurança da Informação
 
Modelos de Previsão para sistemas de turbulência
Modelos de Previsão para sistemas de turbulênciaModelos de Previsão para sistemas de turbulência
Modelos de Previsão para sistemas de turbulência
 
Arm Cortex
Arm CortexArm Cortex
Arm Cortex
 
Teste de Usabilidade e Percurso Cognitivo
Teste de Usabilidade e Percurso CognitivoTeste de Usabilidade e Percurso Cognitivo
Teste de Usabilidade e Percurso Cognitivo
 

Como o Cucumber Funciona

  • 1. Cucumber : Características do arquivo ".feature" e sua sintaxe Disciplina: Engenharia de Software Avançada
  • 2. Behaviour Driven Development ● Pode ser considerada uma evolução de um conjunto de boas práticas do TDD. ○ Principal: outside-in - [começar com o teste falhando] ● Testes de aceitação ○ Feedback ○ Unidade = Estamos fazendo certo o produto ○ Aceitação = Estamos fazendo o produto certo ● Exemplos baseados em comportamento ○ Comportamento = Caracteristica = Feature ○ Escrever testes de aceitação como exemplos a fim de que todos possam lê-los e compreendê-los.
  • 3. Ok, e se você não vai usar Test- Driven? ● Cucumber facilita outside-in, mas não força você a usá-la desta forma ● Cucumber fornece testes legíveis e atrativos para todas as partes do time inclusiva as não técnicas, o que possibilita a inclusão de todos neste processo ● Aumento de comunicação, amenizando ambiguidade ● Especificações executáveis = documentação viva ● Regressão = garantia
  • 4. Cucumber ● É uma ferramenta de linha de comando ● Quando rodada, lê os arquivos de texto chamados de feature (estes escritos em texto plano) e examina os scenarios contidos nestes arquivos e rodam estes scenarios. Cada cenário contém uma lista de steps que dizem ao Cucumber o que deve ser feito. ● Cucumber compreende os arquivos .feature porque estes seguem um conjunto de regras de sintaxe chamado de Gherkin. ● Após a criação da feature, quando rodada, a ferramenta proporciona um esqueleto para guiar o desenvolvimento do arquivo que irá conter os step_definitions daquela feature. ● O arquivo contido na pasta support dá definições da configuração do ambiente de teste, como: webdriver, padrão de seletor, timeout, bibliotecas de automação... ● Cucumber trabalha com expressões regulares ● "Baby steps"
  • 6. Estrutura de pastas /feature /step_definititions /supportexemplo1.feature env.rbexemplo1.rb exemplo2.rb exemplo2.feature
  • 8. Sintaxe Gherkin ● Feature/Funcionalidade ** ○ Todo arquivo gherkin começa com a palavra chave Feature ○ Neste campo é atribuido o nome da feature e sua descrição contendo todas as informações consideradas necessárias para compreender o contexto daquela estória. ○ Durante a execução ele é ignorado. **(cenários em português exigem a inserção no inicio do arquivo "# language: pt" e "#enconding : utf -8"
  • 9. Sintaxe Gherkin ● Feature/Funcionalidade ** Ex: Feature: Exemplo - Primeira feature. Este exemplo tem por objetivo contextualizar o que será descrito ao longo do arquivo como comportamento do sistema, e que sob esta palavra chave podem ser escritas quantas linhas forem necessárias. Aceitando também linhas em branco. Esta feature, irá abordar o cadastro de clientes de um sistema x, visto que o mesmo só poderá ser realizado se todos os campos obrigatórios forem preenchidos. Campos obrigatórios: Nome e CPF.
  • 10. Sintaxe Gherkin ● Background/Contexto: ○ Sob esta palavra chave são descritos os requisitos para aquela feature. Ex: Contexto: Dado que eu estou logado como admin E estou visualizando a página de cadastro de clientes
  • 11. Sintaxe Gherkin ● Scenario/Cenario: ○ Cada cenário é um exemplo único que demonstra como o sistema deve se comportar em uma situação em específica. Ex: Cenário: Cadastrar um cliente Quando eu opto por cadastrar um novo cliente E insiro o nome como "Adão" E o CPF "12545666" E eu cliclo no botão Gravar Então devo ver "Cliente cadastrado com sucesso!"
  • 12. Sintaxe Gherkin ● Scenario Outline/ Examples: ○ Aplica técnica data-driven separando os dados do restante do codigo. Múltiplos dados.
  • 13. Sintaxe Gherkin ● Estrutura básica ■ Given - Dado [O contexto] ■ When - Quando [O evento] ■ Then - Então [A saída] ----- Outras keywords: ○ But - Mas ○ And - E ○ # comentários.... O símbolo *, pode ser utilizado para substituir as palavras chave, Given, When, Then, But e And.. foi criado a fim de suprir a reclamação do sentido de 'engessamento' que as palavras citadas pudessem causas
  • 15. --------------------------------------------------- Funcionalidade: <descrição da funcionalidade> Como um <usuário/ator> Eu quero <meta a ser alcançada> De modo que <a razão para alcançar a meta> Cenário: <descrição do teste> Dado <um estado conhecido> Quando <um determinado evento ocorre> Então <isso deve ocorrer>
  • 16. cucumber --i18n pt | name | Portuguese | | native | português | | feature | Funcionalidade | | background | Contexto | | scenario | Cenário / Cenario | | scenario_outline | Esquema do Cenário / Esquema do Cenario | | examples | Exemplos | | given | * / Dado | | when | * / Quando | | then | * / Então / Entao | | and | * / E | | but | * / Mas |
  • 17. Entendendo: Como criar os arquivos .feature ● Primeiramente, cria-se o diretório chamado features, e dentro dele irão existir todas os . feature do projeto (que é um arquivo de texto). ● Utilizando um editor de texto cria-se o arquivo texto e o salva como .feature