- Java 双重比较
- java - 比较器与 Apache BeanComparator
- Objective-C 完成 block 导致额外的方法调用?
- database - RESTful URI 是否应该公开数据库主键?
我将 spring 单元测试与 spring-restdocs 结合使用。
这是我的 mockmvc 代码:
mockMvc.perform(fileUpload("/api/enterprise/uploadImage")
.file(imageFile)
.with(csrf().asHeader())
.params(params)
).andExpect(status().isOk());
但是当使用 spring-restdocs 时,我不知道如何编写提交的文件片段。
这是我的片段创建代码:
document.snippets(
requestParameters(
parameterWithName("file").description("upload file"),
parameterWithName("imageType").description("image type")
)
);
这样我得到一个错误:
org.springframework.restdocs.snippet.SnippetException: Request parameters with the following names were not found in the request: [file]
at org.springframework.restdocs.request.RequestParametersSnippet.verificationFailed(RequestParametersSnippet.java:79)
at org.springframework.restdocs.request.AbstractParametersSnippet.verifyParameterDescriptors(AbstractParametersSnippet.java:93)
at org.springframework.restdocs.request.AbstractParametersSnippet.createModel(AbstractParametersSnippet.java:70)
at org.springframework.restdocs.snippet.TemplatedSnippet.document(TemplatedSnippet.java:64)
at org.springframework.restdocs.mockmvc.RestDocumentationResultHandler.handle(RestDocumentationResultHandler.java:101)
at org.springframework.test.web.servlet.MockMvc.applyDefaultResultActions(MockMvc.java:195)
at org.springframework.test.web.servlet.MockMvc.perform(MockMvc.java:163)
at com.athena.edge.enterprise.controller.UploadImageTest.uploadImage(UploadImageTest.java:108)
最佳答案
您正在发送一个多部分请求,因此正在上传的文件不是请求参数。相反,它是请求中的部分之一,并且你的测试失败了,因为你试图记录一个不存在的请求参数。
Spring REST Docs 目前不支持记录多部分请求中的部分。有一个 open issue for it .我还没有实现任何东西,因为请求部分可能非常复杂。例如,在某些情况下,部件名称和描述可能就足够了,但在其他情况下,记录部件的标题、内容结构等可能很有用。
请评论与上述相关的问题,特别是如果对最简单情况的支持会有用的话。
关于java - 如何使用 MockMultipartFile 编写 spring-restdocs 片段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37181396/
有没有办法使用 spring-restdocs 记录 http 错误代码?我在 http://docs.spring.io/spring-restdocs/docs/current/reference
我有一个 OrderInfo 类: @ApiModel(description = "object needed to make an order") public class OrderInfo
是否可以使用注释(在字段级别)为字段提供描述? 我知道我可以为此使用description方法 .andDo(document("index", responseFields(
我的 JSON 响应负载如下所示: { "count": 2, "items": [ { "k1": "v1", "k2": [] }, {
我有一个响应,它是一个 json 数组。每个元素都有它的意义,我可以描述它。 我的阵列: ["1525032694","300","true"] 我在文档中找到了一个示例,该示例描述了一个数组和每个相
我正在使用 spring-restdocs 生成 API 文档,我希望将所有参数、路径和响应字段 JSON 路径打印为表格内的代码部分(Asciidoc 中的反引号)。 例如,JSON 路径 spro
我的测试类是 package com.htc.spring.rest.docs; ------- @RunWith(SpringJUnit4ClassRunner.class)
我正在使用 spring restdocs 在我的 REST webapi 上生成文档;我已经集成了这个东西并且生成了我的 html(maven + asciidoc 插件,restassured a
我们的 REST API 通过使用 Spring Restdocs 以标准方式进行的一组测试进行记录(通过 mockMvc.perform(...)...andDo(document().fieldW
作为开发人员,我更喜欢 spring restdocs。但作为文档的使用者,我发现 swagger 实时文档非常引人注目。这是无处不在的例子:http://petstore.swagger.io/ 有
我使用过 SpringRestDoc 并且想要折叠目录。 在我的index.adoc下面 = Service Rest Docs API Document :doctype: book :icons:
我使用当前版本的 spring-restdoc:1.1.2.RELEASE。 我创建了一个需要在 header 中包含 cookie 的 API。这是我的 Controller : @Requ
我知道 fieldWithPath()有 optional()但没有找到制作方法 parameterWithName()可选的。 最佳答案 在 Spring REST Docs 1.1 中,您可以 m
我能够为我创建的剩余服务生成剩余文档,但无法为我正在使用的服务生成文档。 有没有办法测试和生成第三方 API 的文档。 我用来生成本地服务文档的示例代码。 @RunWith(SpringRunner.
我目前正在使用 Spring REST Docs 为我的 RESTful 服务生成文档,我想生成一个包含响应状态可能值和描述的表,就像完成了一样 here (在页面底部)。 我可以在我的父 index
Spring Restdocs 基于 Spring MVC 测试。因此,我想弄清楚是否可以将 Spring Restdocs 与 Jersey 2.0 REST 应用程序集成。 如果是这样,能否请您指
我将 spring 单元测试与 spring-restdocs 结合使用。 这是我的 mockmvc 代码: mockMvc.perform(fileUpload("/api/enterprise/u
我正在使用 spring boot 2 来实现 REST API 服务,并希望使用 restdocs 对其进行记录。 终点 POST /api/tags 带有请求正文 {"name":"Some Ta
Spring REST Docs 生成了一个 curl 片段,在测试时非常方便。它相当于 MockMvc调用如其文档中所述,但如果其主机部分可以替换为测试服务器的主机名(包括端口)而不是 localh
我的应用程序正在使用 spring-data-rest 和 spring-restdocs。我的设置非常标准;几乎完全从文档中复制,但我在下面包含了示例以防遗漏某些内容。当我的 mvc 测试运行时,它
我是一名优秀的程序员,十分优秀!