【问题标题】:Spring Junit test case for controller rest service控制器休息服务的 Spring Junit 测试用例
【发布时间】:2014-12-01 23:32:29
【问题描述】:

我有一个响应 REST 调用的控制器,我有用于其他公共方法的各种测试用例。

我不知道如何为我的控制器编写一个:

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

我不知道如何为这个控制器方法编写测试用例。

【问题讨论】:

  • 说实话,我不认为单元测试 this 方法有什么价值。您唯一可以真正检查的是它是否正确地将参数转发到getFrames 函数,然后将每个FrameVariant 转换为Frame。该函数和转换构造函数都应该以任何方式进行单元测试。此功能应作为端到端测试进行测试,即部署此服务(和“测试数据集”)并发出实际的 HTTP 请求。

标签: spring rest spring-mvc junit spring-test


【解决方案1】:

This 文章很好地介绍了使用 MockMvc 测试 REST 控制器。这篇文章的示例代码可以在 Github 上找到。

【讨论】:

    【解决方案2】:

    看看MockMvc。它是 Spring Test 模块的一部分。

    These tutorials 非常具有描述性并且深入细节,因此您应该立即了解如何测试 Spring MVC 控制器。

    【讨论】:

    • @luboskmac,用mock mvc测试rest可以吗?
    • 你有什么反对意见,为什么不呢?从我的角度来看,团队必须决定对他们最有效的测试。 stackoverflow.com/a/153565/1919879
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-05-19
    • 2018-07-31
    • 2018-10-17
    • 1970-01-01
    • 2019-06-29
    相关资源
    最近更新 更多