1
resposta

[Dúvida] Validação de CEP

É comum que nas aplicações WEB que o nome da rua é validado pelo CEP, nesse caso, se não houver um autocomplete o teste irá quebrar. Existe uma solução para isso, usando a biblioteca em questão ?

1 resposta

Ei, Rafael! Tudo bem?

Sim, é possível, mas é preciso que os dados estejam coerentes. O Faker.js não possui uma funcionalidade nativa para validar rua com CEP e, nesse caso, podemos testar abordagens que contornam esse impedimento.

  • Integrar uma API de consulta de CEP, como a ViaCEP (https://viacep.com.br/), para garantir que os dados inseridos sejam consistentes. Você pode gerar um CEP aleatório com o Faker.js e consultar a API para obter o endereço correspondente. Existem algumas limitações quanta a requisições ou retornar CEPs inválidos, nesse segundo caso é preciso um loop para tentar múltiplos CEPs até chegar em um que seja válido.
  • Outra abordagem é mockar a resposta da API (criar versões simuladas de APIS) que busca os dados do endereço. Segue um exemplo usando Cypress + intercept:
// Exemplo de mock da resposta da API de CEP

cy.intercept('GET', '**/api/cep/30140071', {
  statusCode: 200,
  body: {
    cep: '30140-071',
    logradouro: 'Avenida do Contorno',
    bairro: 'Funcionários',
    localidade: 'Belo Horizonte',
    uf: 'MG'
  }
}).as('getCep');

cy.get('input[name="cep"]').type('30140071');

// Validação com base na resposta mockada
cy.wait('@getCep');
cy.get('input[name="rua"]').should('have.value', 'Avenida do Contorno');
Estes conteúdos podem abrir em inglês e se preferir ler em português, recomendo que utilize o tradutor automático do navegador.

Espero ter ajudado e qualquer dúvida, compartilhe no fórum.

Até mais, Rafael!

Caso este post tenha lhe ajudado, por favor, marcar como solucionado!