【问题标题】:Unit test for Spring controller have RequestPart String paramSpring 控制器的单元测试具有 RequestPart 字符串参数
【发布时间】:2017-07-28 06:00:33
【问题描述】:

我必须为 spring web 项目使用 junit 编写单元测试。 控制器具有类似的参数

@RequestMapping(value = "/tasks/{id}/", method = RequestMethod.PUT)  
public ResponseEntity<String> unlock(
    @PathVariable String id, @RequestPart String param) 

我不知道 param 到底收到了什么。我通常使用@RequestPart MultipartFile。

【问题讨论】:

  • 您需要单元测试还是集成测试。如果是单元测试,只需调用该方法即可。
  • 现在我编写单元测试,例如 result = this.mockMvc .perform(put("/v1/tasks/" + id) .contentType(MediaType.APPLICATION_JSON).content(json) .with(httpBasic ('demo', 'demo'))) .andExpect(status().isOk()).andReturn();测试结果没问题。如何正确测试文件上传

标签: java spring unit-testing


【解决方案1】:
  1. 在测试中,注入你的类。
    1. 添加 MockMvc (是 Spring Test 的一部分,可让您调用 WS)。
    2. 准备模拟,即:when(myClassInjected.myMethod()).thenReturn(the_result);
    3. 使用 MockMvc 执行调用。 (你可以按照文末的教程进行操作)
    4. 验证通话,即:verify(myClassInjected, times(1)).myMethod();

查看this教程以获取更多信息。

【讨论】:

    猜你喜欢
    • 2019-07-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-07-31
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多