Skip to content

Instantly share code, notes, and snippets.

@denisson
Last active November 3, 2016 14:34
Show Gist options
  • Select an option

  • Save denisson/8351863 to your computer and use it in GitHub Desktop.

Select an option

Save denisson/8351863 to your computer and use it in GitHub Desktop.
Teste de aceitação, fitnesse, Cucumber, Capybara, Behat, Codeception

Hoje no trabalho eu decidi aprender a fazer testes de aceitação no projeto que eu estou trabalhando. Fiz uma pesquisa rápida sobre ferramentas e a primeira que encontrei foi uma tal de http://fitnesse.org/. Eu nunca tinha ouvido falar. Dei uma lida, mas não achei tão interessante. Foi quando eu lembrei do Cucumber e pesquisei no google "cucumber acceptance testing php".

A primeira página que veio foi http://matthewdaly.co.uk/blog/2012/11/03/testing-php-web-applications-with-cucumber/. Eu fiz uma leitura dinâmica e depois decidi preparar o ambiente na minha máquina e seguir o tutorial dele, porém já adaptando a um teste real que eu queria fazer no sistema de patrimônio: testar a inclusão de bens.

Instalei o ruby via http://rubyinstaller.org/, e comecei a seguir o tutorial. Fiz o Cucumber acessar a página de cadastro de bens, preencher o código de barras do bem e enviar os dados para cadastrar. Quando fiz isso, a primeira vez que eu executava o teste, ele passava, mas na segunda, não. Pois, o cod barra já tinha sido cadastrado no teste anterior. Daí, percebi que seria necessário estudar um pouco mais e que, talvez fosse interessante que o teste fosse escrito na mesma linguagem da aplicação testada.

Por conta disso, comecei a procurar alternativas em PHP para teste de aceitação. Encontrei duas: http://codeception.com/ e http://behat.org/

Behat é a mais parecida com o Cucumber, e é declaradamente uma imitação. Já o Codeception não segue exatamente a mesma proposta, porém tem sido bem recebido no mundo Laravel (https://tutsplus.com/course/modern-testing-in-php-with-codeception/ e http://laravel-testing.com/books/laravel-testing-decoded).

Agora, preciso decidir o caminho: continuo com Cucumber ou migro para seus imitadores em PHP?

Acabei decidindo continuar no rumo do Cucumber e ver até onde eu consigo ir. Para tanto, tentei entender um pouco melhor o Cucumber lendo https://github.com/cucumber/cucumber/wiki e https://github.com/cucumber/cucumber/wiki/Cucumber-Backgrounder e também https://github.com/cucumber/cucumber/wiki/Step-Argument-Transforms. Percebi que precisava entender um pouco mais da sintaxe usada. Essa sintaxe é definida pela linguagem Gherkin (https://github.com/cucumber/cucumber/wiki/Gherkin).

Depois de ler um pouco voltei para o teste que eu estava fazendo no sistema de patrimônio e várias vezes precisei consultar a documentação do capybara (https://github.com/jnicklas/capybara), pois ela é a lib default do cucumber para manipular dados em páginas HTML. Antes era WebRat, mas eles mudaram para Capybara.

Bom, ainda não consegui terminar o meu teste, mas já estou mais próximo do fim.

@valentimaraujo
Copy link

Bom dia Denisson, hoje pesquisando sobre testes Unit/Acceptance/Integration acabei encontrando este repositorio.
Gostaria de saber como anda seu estudo com test? E gostaria tambem de saber se você poderia me dar algumas dicas de que caminho você seguiu para dar continuidade ao seus estudos.

Eu estou estudando sobre teste porém o foco e aplicar no Laravel.

EU já tinha visto um tutoria do Behat, achei muito legal da forma que o teste é feito em cima de uma historia, ai vi seu comentario sobre ele e acabei resolvendo que vou estudar ele mais a fundo.

Se você puder me dar uns toques eu ficaria bem agradecido.
Abraço

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment