Spring boot Spring控制器的JUnit断言错误

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

我正在尝试测试我的REST控制器,以获得GET/users端点。我使用的是Spring Boot和Mongodb

我的控制器:

    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:
期望:
以任何顺序完全包含:
未找到元素:
以及不预期的因素:
为什么我的回答是按字母顺序排列的? 我怎样才能通过考试