Laboratório

Acesse este repositório:

https://github.com/afonsolelis/testes_software

Missão: Depois de criado uma regra de negócio, vamos fazer um teste parametrizado automatizado e um teste manual.

Linhas 1-18: Imports e Declarações

package com.example.studentregistration.service;

import com.example.studentregistration.model.Aluno;
import com.example.studentregistration.repository.AlunoRepository;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;
import org.junit.jupiter.params.ParameterizedTest;
import org.junit.jupiter.params.provider.CsvSource;
import org.mockito.InjectMocks;
import org.mockito.Mock;
import org.mockito.MockitoAnnotations;

import java.util.Optional;

import static org.junit.jupiter.api.Assertions.assertEquals;
import static org.junit.jupiter.api.Assertions.assertThrows;
import static org.mockito.Mockito.when;

Linhas 19-30: Configuração da Classe de Teste

public class AlunoServiceTest {

    @InjectMocks
    private AlunoService alunoService;

    @Mock
    private AlunoRepository alunoRepository;

    @BeforeEach
    public void init() {
        MockitoAnnotations.openMocks(this);
    }

Linhas 32-40: Teste de Criação de Aluno

    @Test
    public void testCreateAluno() {
        Aluno aluno = new Aluno("John Doe", 25, "[email protected]");
        when(alunoRepository.save(aluno)).thenReturn(aluno);

        Aluno created = alunoService.createAluno(aluno);

        assertEquals(aluno.getNome(), created.getNome());
    }