BDD e Vue

Pessoal, boa tarde!

Meu nome é Tiago Frossard, tenho alguns anos de experiência em Análise de Negócios e agora estou partindo para a automação de testes de aceitação. Há alguns meses atrás fui apresentado ao Behat e curti muito a forma de escrita dos testes, bem mais próxima do que a gente levantava nos requisitos do sistema.

Agora estou em um projeto em Vue querendo implementar algo na mesma linha, escrevendo os critérios de aceite em sintaxe Gherkin ou similar. Nessa linha gostei muito do Cucumber, mas não consegui encontrar material de integração com o VueJS que me desse certeza de que isso funcionaria.

Alguém tem alguma luz para me dar?

Não sei se entendi muito bem a relação do BDD com VUE, mas se o seu projeto é em JS, talvez possa te ajudar: https://github.com/cucumber/cucumber-js
https://github.com/protractor-cucumber-framework/protractor-cucumber-framework

Opa @Rafa , eu quero implantar BDD em um projeto Vue e só o que eu consegui achar oficial foi isso aqui - https://github.com/vuejs/vue/issues/6176 - o que não é muito animador

Cara, um jeito de seguir oq te falaram aí na issue é usar o karma com o Yadda.
O Yadda faz a cola dos seus .feature com o seu script de teste js.
Alguns exemplos: https://github.com/acuminous/yadda/tree/master/examples
É mais burocrático, mas é um jeito de todo mundo ficar feliz… kkk

Recentemente trabalhei em um projeto com Vue e Node, onde consegui utilizar o cucumberjs (Testes API) e protractor-cucumber(Testes Front) sem muitos problemas, reutilizando as features…
Mas para controlar as chamadas assíncronas corretamente deve ter o cuidado de utilizar async/await.

Acredito que vale a tentativa nos links que @Rafa indicou.

Estou passando pelo mesmo problema, vou dar uma olhada neles links.

@tiagofrossard Cucumber/BDD é só uma camada de abstração, não tem nada a ver com o nível de teste que vc esteja automatizando (de unidade, integração, UI), os steps irão chamar um trecho de código, simples assim. Em se tratando de testes de UI, os steps irão chamar algum framework que será o responsável por automatizar a sua tela de fato. Pra JS, Protractor é uma boa opção, tem o livro do @Walmyr disponível na Casa do Código e dezenas de posts escritos por ele e outras pessoas disponíveis. Pesquise no Agile Testers por “protractor” que vc irá encontrar MUITO conteúdo.

@stefanteixeira , então eu poderia usar o Cucumber independente do código que ele rodaria? Preciso então de um framework que automatize interfaces em Vue o qual o Cucumber consiga se comunicar, certo? Se for assim, isso já me garante a escrita dos critérios de aceite na sintaxe Gherkin, que é algo que eu estava querendo.

Esse Protractor não encontra dificuldades com o Vue? Pesquisei pelo Nightwatch que o @Rafael-Cruvinel-0 comentou acima e vi que tem bastante gente usando, mas ainda estou na fase de levantar material para apresentar. Vou dar uma olhada nesse Protractor agora.

@tiagofrossard Protractor é excelente, talvez as pessoas fiquem com um pé atrás porque ele foi feito para testar aplicações Angular, mas ao longo do tempo tornou-se referência em ferramenta para testar aplicações do mundo JS (muito além do Angular). Entre Protractor e Nightwatch, eu iria de olhos fechados no Protractor porque a comunidade também é excelente e se você ficar preso em uma dúvida, conseguem resolver quase que na hora, Nightwatch eu já não tenho certeza de como é a comunidade.

@tiagofrossard Cucumber não precisa se comunicar com nada, é só uma camada de abstração, vc vai colocar um código qualquer em um step do Cucumber, não tem diferença do que seja, pode ser um código que chame um framework, pode ser um console.log, qualquer coisa.

Particularmente, não curti o Nightwatch, mas dá uma olhada e veja o que acha. Não pegue o primeiro framework e saia usando, teste pelo menos algumas opções disponíveis. Leve em consideração o quanto a comunidade está usando, veja no GitHub o número de stars, issues abertas, contribuidores, com qual frequência colocam código na master, e tome sua decisão.

Log in to reply

Looks like your connection to Agile Testers was lost, please wait while we try to reconnect.