Con Spring MVC, è possibile specificare che un particolare URL sarà gestito da un particolare metodo, ed è possibile specificare che particolari parametri saranno indirizzate verso particolari argomenti, in questo modo:Test Spring MVC mapppings annotazione
@Controller
public class ImageController {
@RequestMapping("/getImage")
public String getImage(@RequestParam("imageId") int imageId, Map<String,Object> model) {
model.put("image",ImageService.getImage(imageId));
}
}
Questo va tutto bene, ma ora voglio testare che una richiesta http con un parametro imageId invocherà correttamente questo metodo. In altre parole, voglio un test che si interromperà se rimuoverò o modificherò una qualsiasi delle annotazioni. C'è un modo per fare questo?
È facile verificare che getImage funzioni correttamente. Potrei semplicemente creare un ImageController e invocare getImage con argomenti appropriati. Tuttavia, questa è solo la metà del test. L'altra metà del test deve essere se getImage() sarà invocato dal framework Spring quando arriva una richiesta HTTP appropriata. Mi sento come se avessi bisogno anche di un test per questa parte, specialmente quando le mie annotazioni @RequestMapping
diventano più complesse e invocano il complesso condizioni dei parametri.
Potrebbe mostrarmi un test che si interromperà se rimuovo la linea 4, @RequestMapping("getImage")
?
Non capisco perfettamente la tua domanda. Vuoi dire "Come creare un test unitario per i controllori MVC primaverili che utilizzano il mapping di annotazioni?"? –
Siamo spiacenti. Voglio dire che voglio testare che l'annotazione sia corretta, e che una richiesta HTTP invochi davvero questo metodo. –