有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java如何将八进制十进制转换为十进制?

我正在尝试使用SpringBootREST控制器从数据库获取用户。 我将id作为请求参数传递。如果我传递一个值0004,它将其视为4,测试通过。 但是,如果我将值作为0030传递,它将作为24处理

控制员测试。爪哇

@Test
public void get_user_by_id_should_return_user_with_id_0030() throws Exception {
    User user = new User(0030, "sample@example.com", LocalDate.parse("2018-12-27"), "Kitchen Assistant", Role.user);
    when(userServiceMock.searchByemployeeId(0030)).thenReturn(user);

    MockHttpServletRequestBuilder getUserByEmployeeId = get("/admin/user?employeeId=0030");
    getUserByEmployeeId.header("Authorization", "Bearer " + adminJwtToken);
    JSONObject expectedResponse = new JSONObject();
    expectedResponse.put("employeeId", 0030);
    expectedResponse.put("companyEmailId", "sample@example.com");
    expectedResponse.put("dateOfJoining", "2018-12-27");
    expectedResponse.put("designation", "Kitchen Assistant");
    expectedResponse.put("role", "user");

    mockMvc.perform(getUserByEmployeeId).andExpect(status().isOk());
    verify(userServiceMock, times(1)).searchByemployeeId(0030);
}

控制器。爪哇

  @GetMapping(path = "/admin/user",params = "employeeId")
    public ResponseEntity<User> getUserWithEmploeeId(@RequestParam Integer employeeId) {
        User user = userService.searchByemployeeId(employeeId);
        return new ResponseEntity<>(user, OK);
    }

但是,将0030作为参数传递并不视为30。它把30当作24,我不明白为什么

错误:

Actual invocations have different arguments:
userService bean.searchByemployeeId(30);
-> at com.example.controller.AdminController.getUserWithEmploeeId(AdminController.java:85)

Comparison Failure: 
<Click to see difference>

Argument(s) are different! Wanted:
userService bean.searchByemployeeId(24);
-> at com.example.controller.controller.AdminControllerTest.get_user_by_id_should_return_user_with_id_0030(AdminControllerTest.java:1595)
Actual invocations have different arguments:
userService bean.searchByemployeeId(30);
-> at com.example.controller.controller.AdminController.getUserWithEmploeeId(AdminController.java:85)

共 (0) 个答案