Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/spring/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
带枚举值的spring mvc控制器测试_Spring_Unit Testing_Model View Controller_Controller_Enumeration - Fatal编程技术网

带枚举值的spring mvc控制器测试

带枚举值的spring mvc控制器测试,spring,unit-testing,model-view-controller,controller,enumeration,Spring,Unit Testing,Model View Controller,Controller,Enumeration,我正在尝试测试此方法: @RequestMapping(value="/PersonalState/{EmployeeId}", method = RequestMethod.PUT) public @ResponseBody Object Update(@PathVariable Integer EmployeeId, @RequestParam EmployeeState empstate) throws Exception { EmployeeService.updat

我正在尝试测试此方法:

 @RequestMapping(value="/PersonalState/{EmployeeId}", method = RequestMethod.PUT)
public @ResponseBody Object Update(@PathVariable Integer EmployeeId, @RequestParam EmployeeState     empstate) throws Exception { 
    EmployeeService.updateEmployeeState(entityManager.find(Employee.class, EmployeeId), empstate);
    return null;
}
EmplyEstate是一个枚举,值以整数形式保存在db中,这是我的测试代码:

@Test
public void EmployeeTest() throws Exception {   
        mockMvc.perform(MockMvcRequestBuilders.put("/PersonalState/{empstate}",EmplyeeState.PERMANENT)
           .param("EmployeeId", "550"))
          .andDo(print())
          .andExpect(MockMvcResultMatchers.status().isOk());
}   
我犯了一个错误:

             Resolved Exception:
             Type = org.springframework.beans.TypeMismatchException
             MockHttpServletResponse:
             Status = 400
我尝试将这两个变量作为参数传递,仅将EmployeeId作为参数传递,但仍然存在相同的错误,除了param参数必须都是String类型之外。 有什么想法吗?

问题解决了。 我将枚举字符串值作为参数传递