Codificando Teste Unitário

Atividade Prática: Testes Unitários em Java – Validação de Dados de Usuário

Objetivo da Atividade

Desenvolver testes unitários para validar o comportamento de uma classe de verificação de dados de usuário. O foco está em aplicar testes em regras de negócio e validar entradas com diferentes cenários (positivos e negativos).


Conteúdo Envolvido

  • Fundamentos de testes unitários

  • JUnit 5: estrutura e anotações

  • Métodos de asserção (assertTrue, assertFalse, assertThrows)

  • Estratégia de testes com múltiplos cenários


Descrição da Tarefa

Você receberá a implementação da classe ValidadorUsuario, responsável por validar três informações:

  • Nome de usuário

  • Email

  • Senha

Seu desafio será criar uma classe de testes utilizando JUnit 5 para verificar o funcionamento correto dos métodos, considerando casos válidos e inválidos.


Código Fonte Fornecido: ValidadorUsuario.java

public class ValidadorUsuario {

    public boolean validarNomeUsuario(String nome) {
        return nome != null && nome.length() >= 3 && nome.length() <= 20;
    }

    public boolean validarEmail(String email) {
        return email != null && email.matches("^[\\w.-]+@[\\w.-]+\\.[a-zA-Z]{2,}$");
    }

    public boolean validarSenha(String senha) {
        return senha != null && senha.length() >= 8 && senha.matches(".*[A-Za-z].*") && senha.matches(".*\\d.*");
    }
}

O que você deve fazer

  1. Criar a classe ValidadorUsuarioTest.

  2. Utilizar a biblioteca JUnit 5.

  3. Escrever métodos de teste para cobrir os seguintes cenários:

Validação do Nome de Usuário

  • Nome com tamanho válido (entre 3 e 20 caracteres)

  • Nome muito curto

  • Nome muito longo

  • Nome nulo

Validação do Email

  • Email com formato válido

  • Email sem @

  • Email sem domínio

  • Email nulo

Validação da Senha

  • Senha válida com letras e números

  • Senha muito curta

  • Senha sem números

  • Senha sem letras

  • Senha nula


Critérios de Avaliação

Critério
Pontuação

Cobertura de todos os métodos da classe

10%

Testes positivos (entradas válidas)

10%

Testes negativos (entradas inválidas)

30%

Uso correto de asserções JUnit 5

30%

Organização e clareza do código de testes

20%


Entrega

  • Submeta apenas os arquivos de teste (ValidadorUsuarioTest.java) ou

  • Envie o link do repositório no GitHub com a estrutura completa do projeto.


💡 Dicas para o Desenvolvimento

  • Use o nome dos métodos de teste de forma descritiva, como testNomeUsuarioValido(), testEmailSemArroba(), etc.

  • Você pode usar @BeforeEach para inicializar objetos se necessário.

  • Faça ao menos duas asserções para cada método da classe ValidadorUsuario.


Repositório Exemplo: https://github.com/otavianosilverio/UnitTestJava/tree/main

Last updated