首页 > 解决方案 > Junit 测试用例 - 错误 - 预期状态:<200> 但原为:<500>

问题描述

我正在为我的项目模块运行 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 后看到下面的空指针异常

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());

标签: javamavenjunit

解决方案


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

您可能想要打印完整的响应以进一步调试

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


推荐阅读