O Spring Boot te dá uma pirâmide de testes: testes unitários rápidos sem Spring, testes de slice focados que carregam parte do contexto, e alguns poucos testes de integração de contexto completo. Escolher o nível certo por teste é a habilidade sênior aqui.
Teste unitário — sem Spring nenhum
A injeção por construtor faz com que a maior parte da lógica de serviço não precise de Spring; basta mockar os colaboradores:
{
mock(PriceRepository.class);
(repo.base()).thenReturn(BigDecimal.TEN);
(repo);
assertThat(svc.priceOf()).isEqualByComparingTo();
}
