我需要以下内容才能为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的第一个解决方案吗?