【问题标题】:How to write JUnit for Rest Controller如何为 Rest Controller 编写 JUnit
【发布时间】:2015-02-27 12:55:45
【问题描述】:

我写的 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 测试此控制器的验证错误。

提前致谢。

【问题讨论】:

    标签: spring spring-mvc junit


    【解决方案1】:

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

    【讨论】:

      【解决方案2】:

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

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

      例如:

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

      这应该有助于测试控制器。
      注意:我已经用 Spring 4 版本对此进行了测试

      【讨论】:

        猜你喜欢
        • 2019-06-21
        • 1970-01-01
        • 2021-02-03
        • 2022-11-04
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2022-07-25
        • 2022-11-03
        相关资源
        最近更新 更多