java.lang.AssertionError: Status Expected :200 Actual :400
java.lang.AssertionError: Status Expected :200 Actual :400
我有一个具有以下端点的身份验证控制器
@PostMapping("/register")
fun register(@RequestBody body: RegisterDto): ResponseEntity<User> {
val user = User()
user.name = body.name
user.email = body.email
user.password = body.password
return ResponseEntity.status(201).body(userService.saveUser(user))
}
现在我已经为上面的代码片段编写了一个测试用例,如下所示
fun `register user with valid input, returns ok`() {
val result = mockMvc.perform(MockMvcRequestBuilders.post("/api/auth/register")
.param("id","1")
.param("name","Homer")
.param("email","homer@simpsons.com")
.param("password","123456")
.contentType(MediaType.APPLICATION_JSON)
.accept(MediaType.APPLICATION_JSON))
result.andExpect(MockMvcResultMatchers.status().isOk)
}
在运行,我获得了400,我需要获得200(成功)。我对 spring 靴子的测试还很陌生。我可能做错了什么或错过了什么?万分感谢
您正在设置参数。实际上,您需要传递一个 JSON 正文,如下所示:
fun `register user with valid input, returns ok` () {
val user = User()
user.id = 1
user.name = "Homer"
user.email = "homer@simpsons.com"
user.password = "123456"
var response = new ObjectMapper().writeValueAsString(user)
val result = mockMvc.perform(MockMvcRequestBuilders.post("/api/auth/register")
.contentType(MediaType.APPLICATION_JSON)
.content(response)
.accept(MediaType.APPLICATION_JSON))
result.andExpect(MockMvcResultMatchers.status().isCreated)
}
我有一个具有以下端点的身份验证控制器
@PostMapping("/register")
fun register(@RequestBody body: RegisterDto): ResponseEntity<User> {
val user = User()
user.name = body.name
user.email = body.email
user.password = body.password
return ResponseEntity.status(201).body(userService.saveUser(user))
}
现在我已经为上面的代码片段编写了一个测试用例,如下所示
fun `register user with valid input, returns ok`() {
val result = mockMvc.perform(MockMvcRequestBuilders.post("/api/auth/register")
.param("id","1")
.param("name","Homer")
.param("email","homer@simpsons.com")
.param("password","123456")
.contentType(MediaType.APPLICATION_JSON)
.accept(MediaType.APPLICATION_JSON))
result.andExpect(MockMvcResultMatchers.status().isOk)
}
在运行,我获得了400,我需要获得200(成功)。我对 spring 靴子的测试还很陌生。我可能做错了什么或错过了什么?万分感谢
您正在设置参数。实际上,您需要传递一个 JSON 正文,如下所示:
fun `register user with valid input, returns ok` () {
val user = User()
user.id = 1
user.name = "Homer"
user.email = "homer@simpsons.com"
user.password = "123456"
var response = new ObjectMapper().writeValueAsString(user)
val result = mockMvc.perform(MockMvcRequestBuilders.post("/api/auth/register")
.contentType(MediaType.APPLICATION_JSON)
.content(response)
.accept(MediaType.APPLICATION_JSON))
result.andExpect(MockMvcResultMatchers.status().isCreated)
}