2014-10-07 3 views
5

REST 호출에 응답하는 컨트롤러가 있는데, 다른 공개 메서드에 대한 다양한 테스트 케이스가있다.Controller Rest 서비스 용 Spring Junit 테스트 케이스

내 컨트롤러를 작성하는 방법을 모르는 :

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

내가 어떻게 컨트롤러 메소드에 대한 테스트 케이스를 작성하는 단서가 없다.

+0

솔직히 말해서, 나는 단위 테스트 * this * 방법이 많은 가치가 있다고 생각하지 않습니다. 당신이 실제로 확인할 수있는 유일한 것은 그것이 매개 변수를'getFrames' 함수에 올바르게 전달한 다음 각'FrameVariant'를'Frame'으로 변환한다는 것입니다. 이 함수와 변환 생성자는 모두 단위 테스트를 거쳐야합니다. 이 기능은 엔드 투 엔드 테스트로서 테스트되어야합니다. 즉,이 서비스 (및 '테스트 데이터 세트')를 전개하고 실제 HTTP 요청을 작성해야합니다. – thecoshman

답변

8

MockMvc을 살펴보십시오. 그것은 Spring Test 모듈의 일부입니다.

These tutorials은 매우 자세하고 자세한 설명을 제공하므로 스프링 MVC 컨트롤러를 직접 테스트하는 방법을 익히는 것이 좋습니다.

+0

@luboskmac, 휴식 테스트를 위해 mock mvc를 사용해도 되나요? –

+0

당신은 왜 반대하지 않습니까? 내 관점에서 볼 때 팀은 가장 효과적인 테스트를 결정해야합니다. http://stackoverflow.com/a/153565/1919879 – luboskrnac

0

This이 기사에서는 MockMvc를 사용하여 REST 컨트롤러를 테스트하는 데 유용한 정보를 제공합니다. 이 게시물의 샘플 코드는 Github에서 제공됩니다.