Spring Boot te da una pirámide de testing: pruebas unitarias rápidas sin Spring, pruebas de slice enfocadas que cargan parte del contexto, y unas pocas pruebas de integración con el contexto completo. Elegir el nivel adecuado para cada prueba es la habilidad senior aquí.
Prueba unitaria — sin Spring en absoluto
La inyección por constructor significa que la mayoría de la lógica de servicio no necesita nada de Spring; solo mockea los colaboradores:
{
mock(PriceRepository.class);
(repo.base()).thenReturn(BigDecimal.TEN);
(repo);
assertThat(svc.priceOf()).isEqualByComparingTo();
}
