继续我的帖子How to properly test a Spring Boot using Mockito。还有另一个问题。
嗯,这个方法
@GetMapping("/checkUsernameAtRegistering")
public HttpEntity<Boolean> checkUsernameAtRegistering(@RequestParam String username) {
return ResponseEntity.ok().body(!userService.existsByUsername(username));
}
收到用户名并签入数据库后,如果用户名存在,则返回false。 但是,测试
@Test
public void textExistsUsername() throws Exception {
mockMvc
.perform(get("/checkUserData/checkUsername")
.param("username", "jonki97"))
.andExpect(status().isOk())
.andExpect(content().string("false"));
}
返回true。我有一个用户名,该方法应该返回false。但事实并非如此。
java.lang.AssertionError: Response content
Expected :false
Actual :true
我认为我理解语法
.andExpect(content().string("false"));
我期待一串虚假的价值。如何告诉服务返回什么?
答案 0 :(得分:-1)
您可以使用Mockito when
模拟服务的回报。
@Test
public void textExistsUsername() throws Exception {
when(userService.existsByUsername("jonki97")).thenReturn(true);
mockMvc
.perform(get("/checkUserData/checkUsername")
.param("username", "jonki97"))
.andExpect(status().isOk())
.andExpect(content().string("false"));
}