DEV Community

Diego Yuri
Diego Yuri

Posted on

Simplificando Testes: Por que Talvez Você Não Precise de Cucumber e Page Object ao testar usando Cypress

Explorando a relação entre Cypress, Cucumber (BDD) e PageObject

Olá! Eu sou o Yuri.

Hoje vamos discutir a interação entre Cypress, Cucumber (BDD) e PageObject no contexto de testes automatizados. Recentemente, tenho dedicado tempo para aprimorar meus conhecimentos em testes automatizados, especialmente no que diz respeito ao Cypress. Durante a formação que participei esse ano (FormaNT), adquiri uma base de conhecimento em Selenium, Cucumber e BDD. Inclusive, compartilhei essas experiências em um vídeo no meu canal, onde apresento um escopo de projeto relacionado a Cucumber: TDD e BDD: Como esses conceitos se relacionam com Testes de Software.

Ao explorar o Cypress, notei uma conexão direta entre Cypress e Selenium, uma ferramenta que já conhecia e havia utilizado com o Cucumber. Paralelamente, percebi que muitos dos conteudos de aprendizado que encontrei relacionado ao Cypress também enfatizavam e traziam o conceito de PageObject.

Enquanto buscava integrar o Cucumber ao Cypress, percebi que, embora o Cypress facilite muitas coisas, a introdução do PageObject tornava a implementação mais complexa. Isso me fez questionar a utilidade do PageObject em projetos que poderiam ser mais eficientes sem ele.

Durante essa jornada, Busquei conteudos que comentavam esse ponto que observei, e acabei encontrando uma live muito interessante, que me ajudou a contextualizar esse ponto. Você pode assisti-la aqui: Por que QAs usam Page Objects com Cypress?.

Com todo conhecimento adiquirido nessas pesquisas, cheguei a alguns entendimentos, e que gostaria de compartilha-los para que possamos refletir nos nossos conceitos de qualidade.

1. Cucumber com Cypress: É a combinação ideal?

Desde o início dos meus estudos com Cypress, considerei a implementação do Cucumber, pois o vejo como um excelente framework. No entanto, ao estudar o Cypress por si só, percebi que a utilização do Cucumber poderia ser redundante, uma vez que a estrutura do Cypress já permite uma diversificação eficiente dos cenários e contextos de teste. A integração do Cucumber dependerá do projeto e da importância dos passos definidos.

Em breve, vou compartilhar um vídeo demonstrando como integrar o Cucumber com o Cypress. No entanto, é fundamental avaliar se a utilização do Cucumber é realmente necessária, considerando as capacidades nativas do Cypress.

2. Utilização de PageObject

A utilização do PageObject, especialmente no contexto do Cypress, pode introduzir complexidade desnecessária. A própria ferramenta oferece funcionalidades, como Commands, que permitem a criação de funções chamadas apenas nos testes principais e podem ser reutilizadas conforme necessário. Em projetos extensos, é possível segmentar os Commands para áreas específicas, como Login ou Cadastro, seguindo o conceito de "Função-Teste" no ambiente Cypress.

3. Aprofundando o conhecimento: Application Actions

O blog do Cypress apresenta um artigo relevante sobre a relação
entre PageObject e uma abordagem baseada em Application Actions. Essa reflexão visa aprofundar o entendimento sobre as diferentes abordagens e incentivar uma revisão da forma como aplicamos esses conceitos. Ambas as abordagens são válidas, e a escolha entre usar ou não o PageObject deve ser orientada pelas necessidades específicas do projeto.
Compreender os conceitos da ferramenta, assim como a melhor forma de implementar, pode nos levar a um caminho no qual podemos decidir a utilização ou não tanto dos Application Actions quanto dos pageObjects
Voces podem ver o artigo para uma compreensão melhor a seguir Application Actions: Use Them Instead of Page Objects

Essas reflexões visam aprimorar nossos conceitos de qualidade e proporcionar uma visão mais clara sobre a implementação eficiente de testes automatizados. Fique atento para futuras discussões e compartilhamento de conhecimento!

Top comments (0)