Aprenda como escrever testes automatizados com Protractor no formato Dado/Quando/Então sem o plugin do Cucumber
No mundo de automação de testes muito se fala sobre a utilização da sintaxe Gherkin, utilizada em ferramentas tais como Cucumber. Tal sintaxe possibilita a escrita de testes automatizados em uma linguagem específica de domínio, a qual utiliza de palavras-chave para descrever, pré-condições de testes (Dado), ações (Quando) e verifições de resultados esperados (Então).
Porém, a utilização de tal sintaxe, apesar de parecer facilitar a escrita de testes para pessoas não técnicas, as vezes pode gerar complexidade desnecessária a nível de desenvolvimento de software, visto a necessidade de se trabalhar com expressões regulares, algo que nem todos os profissionais de QA conhecem ou dominam.
Além disso, em muitos casos quem escreve os testes, os mantêm e são os maiores interessados neles, são pessoas técnicas, ou seja, pessoas do time de engenharia de software.
Mas você já se perguntou se seria possível utilizar o lado bom do Gherking e a simplicidade da sintaxe do Jasmine (framework padrão utilizado pelo Protractor) para a escrita de testes automatizados? Ou seja, será que é possível escrever testes automatizados utilizando as palavras-chave Dado/Quando/Então sem a complexidade de lidar com expressões regulares?
Pois a resposta é sim. Você pode escrever testes usando Dado/Quando/Então com o framework Protractor sem a necessidade de integrá-lo com o plugin do Cucumber.
Veja o exemplo abaixo:
describe("Dado que estou na página inicial", () => { beforeEach(() => browser.visit("/")); describe("Quando clico no link de 'contato' do menu", () => { beforeEach(() => element(by.css("a[data-test='contact-menu-link']")) .click()); it("Então sou redirecionado para a página de contato", () => { expect(browser.getCurrentUrl()) .toEqual(`browser.baseUrl${/contact}`); }); }); });
E agora veja o resultado de tal teste quando executado:
Dado que estou na página inicial Quando clico no link de 'contato' do menu ✓ Então sou redirecionado para a página de contato
Como você pode perceber, sem a necessidade de integrar o Protractor com o Cucumber é possível sim escrever testes no formato Dado/Quando/Então sem a necessidade da adição de mais uma camada de abstração, a qual traria mais complexidade para a escrita e manutenção dos testes.
E você, já experimentou escrever testes com Protractor assim? Gostaria de aprender sobre isso é muito mais?
Inscreva-se já no curso de arquitetura de testes com Protractor da Escola Talking About Testing.
E bons testes!
Muito bom, parabéns!
Muito interessante! Agora olhando para o formato desenvolvido, essa dica pode ser aplicada em muitos frameworks, não?
Com certeza. Usei o Protractor como exemplo, mas poderia ser Cypress, Selenium, WebDriver.io, Puppeteer, ou qualquer outro.