Con Spring MVC, se puede especificar que una URL concreta será manejado por un método particular, y se puede especificar que los parámetros particulares se asignarán a los argumentos particulares, así:Prueba Spring MVC mapppings anotación
@Controller
public class ImageController {
@RequestMapping("/getImage")
public String getImage(@RequestParam("imageId") int imageId, Map<String,Object> model) {
model.put("image",ImageService.getImage(imageId));
}
}
Este está todo bien, pero ahora quiero probar que una solicitud http con un parámetro imageId invocará este método correctamente. En otras palabras, quiero una prueba que se romperá si elimino o cambio alguna de las anotaciones. ¿Hay alguna forma de hacer esto?
Es fácil probar que getImage funciona correctamente. Podría simplemente crear un ImageController e invocar getImage con los argumentos apropiados. Sin embargo, esta es solo la mitad de la prueba. La otra mitad de la prueba debe ser si getImage() será invocado por Spring framework cuando entre una solicitud HTTP adecuada. Siento que también necesito una prueba para esta parte, especialmente porque mis anotaciones @RequestMapping
se vuelven más complejas e invocan complejos condiciones del parámetro.
¿Podría mostrarme una prueba que se romperá si elimino la línea 4, @RequestMapping("getImage")
?
No entiendo completamente su pregunta. ¿Quiere decir "Cómo crear una prueba unitaria para los controladores Spring MVC que utilizan el mapeo de anotación"? –
Lo siento. Quiero decir que quiero probar que la anotación es correcta y que una solicitud HTTP realmente invocará este método. –