mockmvc webmvctests spring hateoas返回多个嵌套链接

niknxzdl  于 2021-07-13  发布在  Java
关注(0)|答案(0)|浏览(301)

我有一个dto RepresentationalModel<T> 来自春之恨。我还有一个类,它实现了SpringHateoAS的一个接口,称为simplerepresentationalmodel,它所做的只是简单地向dto添加链接。现在,我还创建了自己的实用程序类来添加来自嵌套userdto和emaildto的链接。所以emaildto看起来是这样的:

{
    "id": "1",
    "email": "email@email.com",
    "user": {
        **fields**,
          "_links": {
               "inUserById": "link",
               "inUserByUsername": "link"
            }
     },
    "_links": {
          "href": "link"
     }
}

这个 user 在json中实际上是一个userdto。现在,当我获取一个用户拥有的所有电子邮件时(考虑到该用户拥有2封或更多电子邮件),应该是这样的:

{
 "embedded": {
          emailDTOList: [
                      {
                     "id": "1",
                     "email": "email@email.com",
                     "user": {
                        **fields**,
                          "_links": {
                              "inUserById": "link",
                              "inUserByUsername": "link"
                        }
                     },
                     "_links": {
                           "href": "link"
                        }
                      },
                      {
                     "id": "2",
                     "email": "email2@email.com",
                     "user": {
                        **fields**,
                          "_links": {
                              "inUserById": "link",
                              "inUserByUsername": "link"
                        }
                     },
                     "_links": {
                           "href": "link"
                        }
                      }
                  ],
               "_links": {
                    "href": "link"
                   }
    }
}

但是当我测试使用 MockMvc ,看起来是这样的:

{
 "embedded": {
          emailDTOList: [
                      {
                     "id": "1",
                     "email": "email@email.com",
                     "user": {
                        **fields**,
                          "_links": {
                              "inUserById": [{
                                         "href": "link",
                                         "href": "link"
                                       }]
                              "inUserByUsername": [{
                                         "href": "link",
                                         "href": "link"
                                       }]
                        }
                     },
                     "_links": {
                           "href": "link"
                        }
                      },
                      {
                     "id": "2",
                     "email": "email2@email.com",
                     "user": {
                        **fields**,
                          "_links": {
                              "inUserById": [{
                                         "href": "link",
                                         "href": "link"
                                       }]
                              "inUserByUsername": [{
                                         "href": "link",
                                         "href": "link"
                                       }]
                     },
                     "_links": {
                           "href": "link"
                        }
                      }
                  ],
               "_links": {
                    "href": "link"
                   }
    }
}

大多数链接都被简化了,但关键是,mockito似乎复制了这些链接。我用postman测试了这个端点,即使再发5封邮件,它也能正常工作。

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题