Cucumber (software) (Português)


Step definitionEdit

As etapas nos arquivos Gherkin “s .feature podem ser consideradas uma invocação de método. Antes do Cucumber pode executar uma etapa, deve ser informado, por meio de uma definição de etapa, como essa etapa deve ser executada.

As definições são escritas em Ruby e convencionalmente arquivadas em features/step_definitions/*_steps.rb. As definições começam com as mesmas palavras-chave de sua invocação (incluindo o suporte completo a idiomas do Gherkin). Cada definição leva dois argumentos

  • Ou uma expressão regular ou string com $ variáveis
  • Um bloco contendo código Ruby para executar

Exemplo usando expressões regulares

Given /(.*) has a valid Credit or Debit card/ do |name| # Ruby codeend

Exemplo usando strings e $ variáveis. Observe que, em tempo de execução, a string é convertida em uma expressão regular e qualquer $ variável é convertida para corresponder a (.*).

Given "$name has a valid Credit or Debit card" do |name| # Ruby codeend

HooksEdit

Os ganchos são a maneira do Cucumber de permitir que a configuração seja realizada antes dos testes serem executados e que a desmontagem seja executada posteriormente. Eles são definidos como blocos Ruby executáveis , semelhante aos métodos JUnit marcados com @Before, @After anotações. Convencionalmente, eles são colocados em support/, e são aplicados globalmente. Existem três tipos básicos de ganchos

  • Before – É executado antes de um cenário
  • After – É executado após um cenário
  • Around – assume o controle e percorre um cenário

ganchos adicionais incluem

  • BeforeStep
  • AfterStep
  • AfterConfiguration – é executado após a configuração do Cucumber e é passado um posição da configuração

Before, After, and Around ganchos opcionalmente obtêm uma lista de cenários de filtragem de tags aos quais se aplicam. Uma lista de tags na mesma string é tratada como OR, enquanto os argumentos individuais são tratados como AND; tags podem ser opcionalmente negadas sendo precedidas por ~.

Exemplo de uma tag marcada antes do gancho

Before("@ATM") do |scenario| # Ruby codeend

Ganchos são frequentemente usados para manter o estado do banco de dados, normalmente limpando antes de executar um cenário. Também é possível iniciar e reverter uma transação usando Before e After ganchos, e muitas extensões Cucumber fornecem um @txn tag para tal propósito.

Integrações e implementaçõesEdit

Implementações não Ruby do Cucumber existem para linguagens populares incluindo Java, JavaScript e Python. Também existe suporte para estruturas de teste de integração. Uma lista completa de implementações pode ser encontrada no Cucumber. A Cucumber integrou ferramentas de teste que funcionam bem com muitas configurações de integração contínua. Existem plug-ins pepinos para ferramentas CI populares como Jenkins e TeamCity e também para IDEs como Eclipse e RubyMine.

Abaixo está um exemplo de definição de etapa escrita para Java com Cucumber-JVM.

@Given("(.*) has a valid Credit or Debit card")public void has_card(String name) { // Java code}

PluginsEdit do formatador

Cucumber usa plug-ins do formatador para fornecer saída. Vários formatos comuns são fornecidos por padrão, incluindo

  • JSON
  • HTML
  • JUnit

Os formatos disponíveis são não padronizado em diferentes implementações Cucumber, portanto, as ofertas podem ser diferentes. O Cucumber também oferece suporte a formatos de saída avançados, como imagens e vídeos.

Editor de automação do navegador

O Cucumber não fornece automação de navegador integrada. No entanto, ele funciona bem com programas existentes, como Selenium e WATiR-WebDriver. Ele suporta a execução de testes com transações por meio do aproveitamento de outros programas, como ActiveRecord.

Cucumber command-lineEdit

Cucumber vem com uma interface de linha de comando integrada que cobre uma lista abrangente de instruções . Como a maioria das ferramentas de linha de comando, o cucumber fornece a opção --help que fornece um resumo dos argumentos aceitos pelo comando.

A linha de comando Cucumber pode ser usada para executar testes definidos rapidamente . Ele também suporta a execução de um subconjunto de cenários por meio da filtragem de tags.

$ cucumber --tags @tag-name

O comando acima ajuda a executar apenas os cenários que têm o especificado @tag-name. Os argumentos podem ser fornecidos como uma operação lógica OR ou AND de tags. Além das tags, os cenários podem ser filtrados por nomes de cenários.

$ cucumber --name logout

O comando acima executará apenas os cenários que contêm a palavra “logout”.

Também é útil saber o que deu errado quando um teste falha. O Cucumber facilita a detecção de bugs no código com a opção --backtrace.

O Cucumber também pode ser configurado para ignorar certos cenários que não foram concluídos, marcando-os com a tag Trabalho em andamento @wip. Quando Cucumber recebe o argumento --wip, Cucumber ignora os cenários com a tag @wip.

Deixe uma resposta

O seu endereço de email não será publicado. Campos obrigatórios marcados com *