Spring boot Spring控制器的JUnit断言错误
我正在尝试测试我的REST控制器,以获得GET/users端点。我使用的是Spring Boot和Mongodb 我的控制器:Spring boot Spring控制器的JUnit断言错误,spring-boot,rest,junit,response,spring-restcontroller,Spring Boot,Rest,Junit,Response,Spring Restcontroller,我正在尝试测试我的REST控制器,以获得GET/users端点。我使用的是Spring Boot和Mongodb 我的控制器: class MessageController( private val userRepository: UserRepository ) { @GetMapping("/users") fun getUsers(@RequestParam(value = "name", required = fa
class MessageController(
private val userRepository: UserRepository
) {
@GetMapping("/users")
fun getUsers(@RequestParam(value = "name", required = false) name: String?): ResponseEntity<List<User>> {
val users: List<User> =
name?.takeIf { it.isNotEmpty() }?.let { userRepository.findUsersByName(it) } ?: userRepository.findAll()
return ResponseEntity.ok(users)
}
class消息控制器(
私有val userRepository:userRepository
) {
@GetMapping(“/users”)
fun getUsers(@RequestParam(value=“name”,required=false)name:String?:ResponseEntity{
val用户:列表=
name?.takeIf{it.isNotEmpty()}?.let{userRepository.findUsersByName(it)}?:userRepository.findAll()
返回ResponseEntity.ok(用户)
}
我的测试是:
@Test
fun shouldReturnUsers() {
val users = listOf(User("1", "James", 18))
val response = restTemplate.getForEntity<List<User>>("/users")
given(userRepository.findAll()).willReturn(users)
val response = restTemplate.getForEntity<List<User>>("/users")
assertThat(response.statusCode).isEqualTo(HttpStatus.OK)
assertThat(response.body).containsExactlyInAnyOrderElementsOf(users)
}
@测试
fun shouldReturnUsers(){
val users=listOf(用户(“1”,“James”,18))
val response=restTemplate.getForEntity(“/users”)
给定(userRepository.findAll())。将返回(用户)
val response=restTemplate.getForEntity(“/users”)
assertThat(response.statusCode).isEqualTo(HttpStatus.OK)
assertThat(response.body).包含(用户)的全部或全部元素
}
我的最后一个断言给了我一个错误:
java.lang.AssertionError:
Expecting:
<[{"age"=18, "id"="1", "name"="James"}]>
to contain exactly in any order:
<[User(id=1, name=James, age=18)]>
elements not found:
<[User(id=1, name=James, age=18)]>
and elements not expected:
<[{"age"=18, "id"="1", "name"="James"}]>
java.lang.AssertionError:
期望:
以任何顺序完全包含:
未找到元素:
以及不预期的因素:
为什么我的回答是按字母顺序排列的?
我怎样才能通过考试