java.lang.AssertionError:期望的状态:< 200>但是:< 400>

时间:2016-05-09 12:13:38

标签: java spring spring-mvc

它是我的控制者......

@RequestMapping(value = "/user", method = RequestMethod.POST, consumes = MediaType.APPLICATION_JSON_VALUE, produces = MediaType.APPLICATION_JSON_VALUE, headers = "Accept=application/json")
public @ResponseBody ResponseMessage getUser(@RequestBody AvailableUser uuid) {
    logger.info("enter into getuser method's body");
    return Manager.availableUser(uuid);
}

它是我的测试控制器...

@Test 
public void testgetUser() throws Exception 
{
    AvailableUser availableUser=new AvailableUser();
    List<String> lst =new ArrayList<String>();
    lst.add("test1");
    lst.add("test2");
    availableUser.setUuId(lst);
    this.mockMvc.perform(post("/user").contentType(MediaType.APPLICATION_JSON).accept(MediaType.APPLICATION_JSON))
        .andExpect(status().isCreated())
        .andExpect(status().isOk());
         when(Manager.availableUser(availableUser)).thenReturn(message);
}

当控制器方法调用("/user")形成testcontroller时,我不知道如何传递对象。

我收到错误消息java.lang.AssertionError: Status expected:<200> but was:<400>

1 个答案:

答案 0 :(得分:2)

如果您使用的是Jackson,最简单的方法是使用AvailableUser的实例将ObjectMapper序列化为JSON字符串:

@Test 
public void testgetUser() throws Exception 
{
    // Same stuff
    ObjectMapper mapper = new ObjectMapper();
    this.mockMvc
        .perform(
                  post("/user")
                 .contentType(MediaType.APPLICATION_JSON)
                 .accept(MediaType.APPLICATION_JSON)
                 .content(mapper.writeValueAsString(availableUser))
        )
        .andExpect(status().isCreated())
        .andExpect(status().isOk());
    // Same as before
}