0

我有一个RepresentationalModel<T>从 Spring Hateoas 延伸出来的 DTO。我还有一个类,它实现了 Spring Hateoas 的一个名为 SimpleRepresentationalModel 的接口,它所做的只是轻松地将链接添加到您的 DTO。现在,我还创建了自己的实用程序类来添加来自 EmailDTO 的嵌套 UserDTO 的链接。所以 EmailDTO 看起来像这样:

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

json 中的user实际上是一个 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 似乎复制了链接。我使用邮递员测试了端点,即使再收到 5 封电子邮件,它也能完美运行。

4

0 回答 0