确保MockMvc.perform具有错误

时间:2014-08-14 19:06:31

标签: spring mockito

我需要以下内容才能为hasErrors返回true:

mockMvc.perform(post("/user_save"))
            .andExpect(status().isOk())
            .andExpect(model().hasErrors());
}

我通过调用userController.saveUser找到了一种方法:

BindingResult mockBindingResult = mock(BindingResult.class);
    FieldError mockFieldError = mock(FieldError.class);

    when(mockBindingResult.hasErrors()).thenReturn(true);
    when(mockBindingResult.getFieldError()).thenReturn(mockFieldError);
    when(mockFieldError.getField()).thenReturn("mock error field");
    when(mockFieldError.getCode()).thenReturn("mock error code");

    User user = new User();
    String str = "test";
    user.setUsername(str);
    user.setPassword(str);
    user.setName(str);

    String result = userController.saveUser(user, mockBindingResult);

然而,这很长,看起来很糟糕,只是通过重定向间接让我看看是否有错误(如果出现错误,result会采用不同的值)。

当然有一种方法可以适应mockM的第一个解决方案吗?

0 个答案:

没有答案