Ejercicio de programación: Reto Testing unitario de componentes y servicios
Este ejercicio de programación está diseñado para poner a prueba tus conocimientos en SpringBoot. Es un ejercicio básico perfecto para principiantes que están aprendiendo los fundamentos.
Información adicional del ejercicio
Crear un test unitario básico para un servicio usando @ExtendWith(MockitoExtension.class) con mocks y verificaciones
Contenido del ejercicio
Implementa un test unitario para el servicio ProductoService
que tiene un método obtenerPrecioConDescuento(Long id, Double porcentajeDescuento)
. El servicio depende de un ProductoRepository
que tiene un método findById(Long id)
que devuelve un Optional<Producto>
.
El método obtenerPrecioConDescuento
debe:
- Buscar el producto por ID usando el repositorio
- Si el producto existe, calcular el precio con descuento:
precio * (1 - porcentajeDescuento / 100)
- Si el producto no existe, lanzar una
ProductoNotFoundException
Debes crear un test que:
- Use
@ExtendWith(MockitoExtension.class)
(sin cargar contexto de Spring) - Configure un mock del repositorio para devolver un producto con precio 100.0
- Llame al método con un descuento del 20%
- Verifique que el resultado es 80.0
- Verifique que se llamó al método
findById
del repositorio exactamente una vez
Utiliza las anotaciones @Mock
para el repositorio y @InjectMocks
para el servicio. Emplea when().thenReturn()
para configurar el comportamiento del mock y verify()
para verificar las interacciones.
Lección relacionada
Este ejercicio está relacionado con la lección "Testing unitario de componentes y servicios" de SpringBoot. Te recomendamos revisar la lección antes de comenzar.
Ver lección relacionadaMás ejercicios de SpringBoot
Explora más ejercicios de programación en SpringBoot para mejorar tus habilidades y obtener tu certificación.
Ver más ejercicios de SpringBootSolución al ejercicio de programación en SpringBoot
¡Desbloquea la solución completa!
Completa el ejercicio de programación en SpringBoot para acceder a la solución paso a paso, explicaciones detalladas y mejores prácticas.
Practica con ejercicios de programación en SpringBoot
Mejora tus habilidades con cientos de ejercicios de práctica, recibe retroalimentación instantánea y obtén tu certificación cuando estés listo.
Asistente de IA
Aprende de tus errores
Progreso
Mide tu avance
Certificación
Valida tus habilidades
Únete a miles de desarrolladores mejorando sus habilidades en SpringBoot