Reto test controlador REST

Código
Intermedio
SpringBoot
Curso de SpringBoot
5 min
200 XP
Actualizado: 13/06/2025

¡Programa y certifícate!

Asistente de IA
Solución de código
Certificado
Empezar ejercicio

Descripción

Crear un test de controlador REST que valide respuestas JSON usando MockMvc y verificaciones con jsonPath.

Crea una clase de test para un controlador REST que gestiona productos. El controlador tiene un endpoint GET /api/productos/1 que devuelve un producto en formato JSON con los campos id, nombre y precio.

Debes implementar:

  1. Una clase de test anotada con @WebMvcTest que especifique el controlador ProductoController
  2. Inyectar MockMvc usando @Autowired
  3. Crear un mock del servicio ProductoService usando @MockBean
  4. Implementar un método de test que:
  • Configure el mock para que obtenerProductoPorId(1L) devuelva un producto con id=1, nombre="Laptop" y precio=999.99
  • Realice una petición GET a /api/productos/1 aceptando JSON
  • Verifique que el status sea 200 OK
  • Verifique que el content-type sea JSON
  • Use jsonPath para validar que el campo nombre sea "Laptop"
  • Use jsonPath para validar que el campo precio sea 999.99

Empezar creando la clase de test con las anotaciones necesarias, luego inyectar las dependencias y finalmente implementar el método de test con todas las verificaciones usando mockMvc.perform() y andExpect().

Guarda tu progreso

Inicia sesión para no perder tu progreso y accede a miles de tutoriales, ejercicios prácticos y nuestro asistente de IA.

Progreso guardado
Asistente IA
Ejercicios
Iniciar sesión gratis

Más de 25.000 desarrolladores ya confían en CertiDevs

Este es el código que debes testear:

// Clase User
class User {
    private Long id;
    private String name;
    private String email;

    // constructores...
	// getter y setters...
}

// Controlador UserController
@RestController
class UserController {

    @GetMapping("/users/{id}")
    public ResponseEntity<User> getUserById(@PathVariable Long id) {
        // Usuario hardcodeado como se especifica en el enunciado
        User user = new User(1L, "Juan Pérez", "juan@email.com");
        return ResponseEntity.ok(user);
    }
}

Solución al ejercicio de programación en SpringBoot

Contenido bloqueado

¡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.

solution.js
JavaScript
1 function solveChallenge ( input ) {
2 // Algoritmo optimizado O(n log n)
3 const data = parseInput ( input );
4 const sorted = data . sort (( a , b ) => a - b );
5
6 // Aplicar técnica de dos punteros
7 let left = 0 , right = sorted . length - 1 ;
8 const result = [];
9
10 while ( left < right ) {
11 const sum = sorted [ left ] + sorted [ right ];
12 if ( sum === target ) {
13 result . push ([ sorted [ left ], sorted [ right ]]);
14 left ++; right --;
15 } else if ( sum < target ) {
16 left ++;
17 } else {
18 right --;
19 }
20 }
21
22 return result ;
23 }
Código completo
Explicaciones
Mejores prácticas
+1.200 developers han resuelto este ejercicio de programación

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

⭐⭐⭐⭐⭐
4.9/5 valoración