所以...我的控制器中有一个简单的方法“ addUser”。当数据库中已经存在具有给定电子邮件的用户时,我想测试第一个if语句。在setUp方法中,我创建一个具有用户名,姓氏,电子邮件等字段的示例用户。当我将与 param 完全相同的电子邮件放入模拟Mvc中时,我希望它返回“ register / new -register” ,但它返回“ register / register-success” 。我是测试的新手,无法找到此问题的答案。这是我的代码。请告诉我如何测试这部分,或者至少是即时消息,即使我做对了?
@PostMapping("/register")
public String addUser(@ModelAttribute @Valid User user,
BindingResult bindResult) {
if(userService.isAlreadyRegistered(user.getEmail())){
bindResult.rejectValue("email", "email.exists", "Email already in database");
return "register/new-register";
}
else if(bindResult.hasErrors())
return "register/new-register";
else {
userService.addWithDefaultRole(user);
return "register/register-success";
}
}
@Test
@WithMockUser
public void addUserExists() throws Exception{
mockMvc.perform(post("/user/register")
.param("firstName", "test")
.param("lastName", "test")
.param("email", "test@test.com")
.param("password", "test"))
.andExpect(view().name("register/new-register"))
.andExpect(status().isOk());
}