Junit测试用例-错误-预期状态:<200>但原为:<500>

时间:2019-01-03 09:24:11

标签: java maven junit

我正在为我的项目模块运行Junit测试用例。执行完测试用例后,将获得以下错误报告。

ClaimControllerTest.shouldReturnClaimWithValidationResult:417 Status expected:<200> but was:<500>

我使用下面的maven注释来执行特定模块的测试用例。

mvn clean compile verify -Ptest

但是,我的项目有很多模块依赖性。我如何为我的整个项目执行我的测试用例(将所有模块)

上面的错误指向下面的测试用例代码

 mockMvc.perform(get(String.format("/claims/%d/validation-result", claim.getId())))
  .andExpect(status().isOk())
  .andExpect(jsonPath("$.catClaimNumber").value(claim.getCatClaimNumber().intValue()))
  .andExpect(jsonPath("$.validationResult.programErrorCode").value("UNTHRZD_EXTRNL_USR"))
  .andExpect(jsonPath("$.validationResult.hasErrors").value(true));

更新1:

在执行Sys out操作后看到以下空指针异常

2019-01-03 15:46:27,401 [main] ERROR api.controller.BaseController: 83 - Unhandled exception while processing request for URL : http://localhost/claims/1901/validation-result with exception : null java.lang.NullPointerException

对于以下代码:

mockMvc.perform(get(String.format("/claims/%d/validation-result", claim.getId()))).andDo(print());

2 个答案:

答案 0 :(得分:1)

这是告诉您,它收到的错误代码为500,而不是调用休息端点的成功代码200。这意味着您的休息端点引发了异常。

您可能希望打印完整的响应,但要进行进一步的调试除外

mockMvc.perform(get(String.format("/claims/%d/validation-result", claim.getId()))).andDo(print());

答案 1 :(得分:0)

您有两个问题:

  1. 得到500而不是200-@mkjh已经回答了
  2. 如何为整个项目(将所有模块)执行测试用例-为此,您应该尝试进行模拟(模拟其他模块),因为除非并且除非它是集成测试,否则您不能也不应考虑所有模块确保所有模块都已启动并且正在运行,否则您将再次遇到500错误,该错误基本上表明发生了内部服务器错误,并且在大多数情况下是由于某些服务未启动而发生的