如何为Rest Controller编写JUnit

时间:2015-02-27 12:55:45

标签: spring spring-mvc junit

我写了Rest控制器如下:

@RestController

public class RegisterRestController {

@RequestMapping(value = "/create", method = RequestMethod.POST, consumes = "application/json", produces = "application/json")

    public RegisterResponseObject createProspect(
            @Valid @RequestBody ProfileBean profileBean) throws Exception {

    //If validation passes do something
}

}

这里,如果验证失败,我在Controller建议中处理异常并将错误对象发送回客户端。

如何使用JUnit测试此控制器以进行验证错误。

提前致谢。

2 个答案:

答案 0 :(得分:0)

Spring提供可以执行请求的MockMvcSpring documentation是一个很好的起点

答案 1 :(得分:0)

如果您在正常客户端请求中使用控制器建议处理所有错误,您也可以在JUnit中执行相同操作。

在测试控制器类时,我们构建MockMvc对象,然后将自定义控制器建议设置为该对象。这样,当控制器类中的方法中出现任何异常时,它将首先转到控制器建议,然后返回到JUnit测试。

例如:

@Before
public void setup() {
    MockitoAnnotations.initMocks(this);
    this.mockMvc = MockMvcBuilders.standaloneSetup(this.customController)
            .setControllerAdvice(new CustomControllerAdvice()).build();
}

这有助于测试控制器 注意:我已经使用Spring 4版本进行了测试