2014-10-07 15 views
5

Mam kontroler, który odpowiada na wywołania REST, mam różne przypadki testowe dla innych moich publicznych metod.Walizka testowa Spring Junit dla usługi odtwarzania kontrolera

nie wiem jak napisać jeden dla mojego kontrolera:

@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; 
    } 

nie mam pojęcia jak napisać przypadek testowy dla tej metody kontrolera.

+0

Szczerze mówiąc, nie sądzę, że testowanie jednostkowe * ta metoda jest dużo warta. Jedyne, co naprawdę możesz sprawdzić to to, że poprawnie przekazuje parametry do funkcji 'getFrames', a następnie konwertuje każdy" FrameVariant "na' Frame'. Zarówno ta funkcja, jak i konstruktor konwersji powinny być testowane w dowolny sposób. Funkcję tę należy przetestować jako test końcowy, tj. Wdrożyć tę usługę (i "zestaw danych testowych") i wykonać rzeczywiste żądania HTTP. – thecoshman

Odpowiedz

8

Spójrz na MockMvc. Jest to część modułu Spring Test.

są bardzo opisowe i wchodzące w szczegóły, więc powinieneś od razu wiedzieć, jak przetestować kontrolery Spring MVC. Publikacja

+0

@luboskmac, czy można używać próbnego mvc do testowania reszty? –

+0

Czy masz zastrzeżenia, dlaczego tak nie jest? Z mojego punktu widzenia zespół musi zdecydować, co jest dla nich najskuteczniejsze. http://stackoverflow.com/a/153565/1919879 – luboskrnac

0

This stanowi dobre wprowadzenie do testowania kontrolerów REST za pomocą MockMvc. Przykładowy kod tego posta jest dostępny na Github.

Powiązane problemy