Gerador de CEP: um número sem dígito verificador, mas com estrutura geográfica real
O CEP (Código de Endereçamento Postal) é uma exceção dentro da família de documentos deste site: diferente de CPF, CNPJ, PIS ou RENAVAM, o CEP não tem dígito verificador oficial. Seus 8 dígitos são puramente um código de roteamento postal definido pelos Correios, sem nenhuma fórmula matemática de checksum embutida — um CEP com qualquer combinação de 8 dígitos é "sintaticamente" tão válido quanto outro. A única forma real de invalidar um CEP é verificar se ele corresponde a uma faixa de fato distribuída pelos Correios, o que exige consulta a uma base de endereços (like a API dos Correios ou um provedor de CEP) — não há checagem de formato isolada que substitua isso.
A estrutura geográfica que este gerador respeita
Ainda que não exista dígito verificador, o CEP não é um número
aleatório do ponto de vista geográfico: os Correios distribuem as faixas
dos 5 primeiros dígitos de forma sequencial por região e estado — CEPs
começando em 01 a 19 são de São Paulo,
20 a 28 do Rio de Janeiro, 90 a
99 do Rio Grande do Sul, e assim por diante, cobrindo todo
o território nacional em faixas contíguas (algumas UFs, como Amazonas e
Goiás, têm mais de uma faixa não contígua, refletindo a forma como a
divisão foi feita historicamente). Este gerador reproduz essas faixas
oficiais: ao escolher um estado, o número sorteado cai dentro do
intervalo real daquela UF — algo relevante para testar sistemas que
fazem qualquer inferência geográfica a partir do CEP sem consultar uma
API externa (por exemplo, pré-selecionar a UF de um formulário de
endereço a partir dos primeiros dígitos digitados).
Uso em testes de formulários de endereço
Formulários de checkout, cadastro e cálculo de frete costumam usar o CEP
como gatilho para autopreenchimento de endereço via alguma API (ViaCEP,
Correios, provedores privados) — uma dependência externa que não deveria
estar no caminho de um teste automatizado de UI. Gerar um CEP
estruturalmente plausível (faixa correta da UF, formato
00000-000) permite testar o comportamento do formulário
quando a API de CEP está fora do ar, retorna erro, ou quando o teste
simplesmente não deve depender dela — sem que isso exija mockar a API
inteira para cada cenário de teste. Como o CEP não tem verificação
matemática, também é o caso ideal para testar como o formulário lida com
um CEP "bem formado mas inexistente" — um comportamento que só CEP
permite isolar, já que os outros documentos deste site rejeitariam esse
valor já na camada de dígito verificador.