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.
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;
Aluno e AlunoRepository que serão testadas@BeforeEach, @Test, @ParameterizedTest, @CsvSource)@InjectMocks, @Mock, MockitoAnnotations)Optional do JavaassertEquals, assertThrows) e para configurar mocks (when)public class AlunoServiceTest {
@InjectMocks
private AlunoService alunoService;
@Mock
private AlunoRepository alunoRepository;
@BeforeEach
public void init() {
MockitoAnnotations.openMocks(this);
}
@InjectMocks cria uma instância real de AlunoService e injeta os mocks nela@Mock cria um mock (simulação) do AlunoRepositoryinit() executado antes de cada teste, inicializa os mocks @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());
}