2014-10-07 4 views
5

Ho un controller che risponde alle chiamate REST, ho vari casi di test per i miei altri metodi pubblici.Spring Junit test case per il servizio di controllo del controller

non so come scrivere uno per il mio controller:

@RequestMapping(value = "/api/frames", method = RequestMethod.GET) 
public List<Frame> getFrames(
    @RequestParam(value="frameLength", required=true) Double frameLength, 
    @RequestParam(value="frameBreadth", required=true) Double frameBreadth, 
    @RequestParam(value="mountThickness", required=true) Double mountThickness, 
    @RequestParam(value="frameThickness", required=true) Double frameThickness){ 
    List<Frame> tempFrames = new ArrayList<>(); 
    List<FrameVariant> frameVariants = frameVariantService.getFrames(
     frameLength, frameBreadth, mountThickness, frameThickness); 
    for (FrameVariant frameVariant : frameVariants) { 
     tempFrames.add(new Frame(frameVariant)); 
    } 
    return tempFrames; 
    } 

non ho idea di come scrivere un banco di prova per questo metodo di controllo.

+0

Per essere onesto, non credo che il test di unità * questo metodo valga molto. L'unica cosa che puoi veramente verificare è che inoltra correttamente i parametri alla funzione 'getFrames' e quindi converte ciascun' FrameVariant' in un 'Frame'. Sia la funzione che il costruttore di conversione dovrebbero essere testati in qualsiasi modo. Questa funzionalità dovrebbe essere testata come test end-to-end, ovvero implementare questo servizio (e un 'set di dati di test') e fare una richiesta HTTP effettiva. – thecoshman

risposta

8

Dai uno sguardo allo MockMvc. Fa parte del modulo Spring Test.

These tutorials sono piuttosto descrittivi e vanno nei dettagli, quindi è necessario farsi un'idea subito su come testare i controller Spring MVC.

+0

@luboskmac, va bene usare mock mvc per testare il riposo? –

+0

Hai qualche obiezione sul perché non dovrebbe? Dal mio punto di vista, il team deve decidere qual è il test più efficace per loro. http://stackoverflow.com/a/153565/1919879 – luboskrnac

0

This articolo fornisce una buona introduzione per testare i controller REST con MockMvc. Il codice di esempio per questo post è disponibile su Github.