1
resposta

[Projeto] Faça como eu fiz 02 (validação dos campos)

Aqui está o meu teste, adicionei o enter na validação ao invés do click no button e agrupei algumas validações a fim de reduzir o código

describe('Registrar no site alurapic e fazer login para validar', () => {
    beforeEach('Acessar página do alurapic', () => {
        cy.visit('https://alura-fotos.herokuapp.com/#/home')
    })

    Cypress.Commands.add('paginaDeRegistro', () => {
        cy.contains('a', 'Register now').click()
        cy.contains('button.btn', 'Register').click()
    })

    it('verificar mensagens de validação', () => {
        cy.paginaDeRegistro()
        cy.contains('ap-vmessage', 'Email is required!').should('be.visible')
        cy.contains('button.btn', 'Register').click()
        cy.contains('ap-vmessage', 'Full name is required!').should('be.visible')
        cy.contains('ap-vmessage', 'User name is required!').should('be.visible')
        cy.contains('ap-vmessage', 'Password is required!').should('be.visible')
    })

    it('verificar campos invalidos', () => {
        cy.paginaDeRegistro()
        cy.get('input[formcontrolname="email"]').type('willian')
        cy.contains('ap-vmessage', 'Invalid e-mail').should('be.visible')
        cy.get('input[formcontrolname="fullName"]').type('w{enter}')
        cy.contains('ap-vmessage', 'Mininum length is 2').should('be.visible')
        cy.get('input[formcontrolname="userName"]').type('w{enter}')
        cy.contains('ap-vmessage', 'Mininum length is 2').should('be.visible')
        cy.get('input[formcontrolname="password"]').type('1234567{enter}')
        cy.contains('ap-vmessage', 'Mininum length is 8').should('be.visible')
    })

    it('verificar mensagem que o nome de usuário deve estar em minúsculo', () => {
        cy.paginaDeRegistro()
        cy.get('input[formcontrolname="userName"]').type('WILL{enter}')
        cy.contains('ap-vmessage', 'Must be lower case').should('be.visible')
    })
})
1 resposta

Oi Willian, tudo bem?

Parabéns pela evolução do seu teste! Você fez algumas melhorias significativas na estrutura do código, o que tornou o teste mais conciso e eficiente.

A criação do comando personalizado paginaDeRegistro é uma excelente ideia, pois agrupa as etapas necessárias para acessar a página de registro e iniciar o processo de registro do usuário. Isso simplifica o código e evita repetições desnecessárias.

A utilização do comando type com a tecla "Enter" para validar os campos inválidos é uma ótima abordagem. O uso do "Enter" é uma forma eficiente de acionar a validação de campo sem a necessidade de clicar em um botão, o que simplifica o fluxo de teste.

Além disso, a verificação agrupada das mensagens de validação dos campos inválidos também reduz a duplicação de código e torna o teste mais legível.

Cada caso de teste foi elaborado com foco em cenários específicos, o que é muito importante para garantir a correta funcionalidade do registro de usuários no sistema. A verificação da mensagem que o nome de usuário deve estar em minúsculo também é relevante, pois testa a validação de um requisito específico do sistema.

O uso de descrições claras para cada caso de teste ajuda a entender facilmente o objetivo de cada um deles.

No geral, seu código está bem organizado, limpo e de fácil compreensão. Suas melhorias demonstram que você está evoluindo suas habilidades em testes automatizados.

Continue praticando e explorando as possibilidades do Cypress, e lembre-se sempre de verificar diferentes cenários e situações para garantir a qualidade do seu código e do sistema testado.

Um abraço e bons estudos.