Mais um post da série “pitadas de Cypress”
Dando continuidade a série, aprenda como verificar que após determinada ação, o usuário é direcionado para a URL correta.
Imagine um cenário de teste de logout.
Vamos dizer que após fazer o logout da aplicação, o usuário seja redirecionado para a página de login. Como testar isso?
A resposta é simples.
cy.url()
Vejamos um exemplo.
describe('Logout', () => { beforeEach(() => { cy.login() // Irei abordar comandos customizados em outro post. Aguarde! }) it('logout redireciona para à página de login', () => { cy.contains('Logout') .should('be.visible') .click() cy.url() .should('be.equal', 'https://exemplo.com/login') }) })
Com o retorno da chamada da função .url(), podemos verificar se a mesma é igual a uma URL esperada.
Vejamos outra opção, no caso da propriedade baseUrl estar definida no arquivo cypress.json.
describe('Logout', () => { beforeEach(() => { cy.login() }) it('logout redireciona para à página de login', () => { cy.contains('Logout') .should('be.visible') .click() cy.url().should( 'be.equal', `${Cypress.config("baseUrl")}/login` ) }) })
Tada! 🎉
Com a funcionalidade de template strings do JavaScript, podemos obter o valor da configuração da baseUrl (através de Cypress.config(“baseUrl”)) e interpolar com o valor /login.
Dessa forma, podemos executar o mesmo teste em diferentes ambientes (com diferentes baseUrls) e tudo continuará “numa boa”!
O que você está achando da série?
Aguardo teu feedback.
Este conteúdo foi traduzido para inglês e pode ser encontrado no DEV Community.
Quer aprender automação de testes com Cypress na prática? Conheça meus cursos na Escola Talking About Testing, ou no Udemy.
Ótimo série de conteúdos. Obrigada!! Estava procurando por algo assim, bem simples de entender. Parabéns pelo conteúdo!
Fico feliz que gostou!