问题标签 [spring-restdocs]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
669 浏览

spring-restdocs - Spring RestDocs - 子文档中的文档链接?

如何使用 Spring REST Docs 记录子文档中的链接?

给定以下 JSON 文档:

我可以按照参考文档中的建议links通过实现自定义LinkExtractor来记录(我的工作实现与HalLinkExtractor非常相似):

但是,我的 JSON 文档links在其他地方包含子文档,例如

如何记录与子links文档关联的文档?foo理想情况下,我想做类似的事情:

自然,这是行不通的,因为没有jsonPath(..)方法。还有哪些其他选择?

我猜如果您使用HalLinkExtractorand 尝试在_embedded子文档中记录链接,也会出现同样的问题(请参阅draft-kelly-json-hal中的示例)。

0 投票
1 回答
93 浏览

spring-restdocs - RestDocumentation 类 Spring

Spring org.springframework.restdocs.RestDocumentation 类覆盖了 org.junit.rules.TestRule 的 apply 方法,这意味着所有测试用例都应该用 Junit 编写。如何使用 TestNG 实现相同的功能。

0 投票
1 回答
2146 浏览

java - Spring REST 文档测试中未使用的自定义 Jackson 模块

我已经使用自定义 Jackson 模块(使用 Spring Boot 1.3)在 Spring REST 文档上编写了一个小测试。在我的应用程序主类中,我只有@SpringBootApplication. 然后我有另一个JacksonCustomizations看起来像这样的类:

这种定制是完美的。当我运行 Spring Boot 应用程序时,我看到了应有的 JSON。

但是,在我的文档测试中,没有应用自定义。这是我的测试代码:

}

请注意我的测试中的应用程序上下文如何导入JacksonCustomizations配置。

我发现的其他东西:

  • 添加@EnableWebMvc到我的启动应用程序会阻止自定义工作。
  • 删除@EnableWebMvc我的测试会停止生成 JSON。
0 投票
1 回答
2593 浏览

asciidoctor - 从 gradle 中找不到 Asciidoctor 'snippets' 属性

我正在遵循 Spring Rest Docs 参考文档中关于构建配置的说明。但是当我尝试做时,'snippets' 属性似乎没有暴露给 Asciidoctor

但我得到一个 asciidoctor “警告:删除包含对缺失属性的引用的行:片段”

如果我删除属性引用并直接放入路径,则会出现包含文件的内容。

这是包含 Rest Docs/Asciidoctor 信息的 build.gradle 文件:

谢谢。

0 投票
2 回答
1571 浏览

spring-mvc - Spring Rest Docs 如何在我的代码片段或 .adoc 文件中包含应用程序名称

我正在尝试将 Spring Rest Docs 包含在 Spring Boot 应用程序中,并设法生成了一个简单的 asciidoc HTML 文件,该文件显示了应用程序根目录“/”的请求路径。问题是代码段中的请求 URL 不包含应用程序名称?例如,我的应用程序被称为“myservice”,所以我希望根“/”请求路径记录为

$ curl ' http://localhost:8080/myservice/ '

相反,我只能生成

$ curl ' http://localhost:8080/ '

我是 Spring Rest Docs 的新手,无法弄清楚如何在记录的 URL 中包含应用程序名称。它是在 asccidoctor 的 maven 插件中、在测试类的 @before 或 @Test 方法中还是在 .adoc 文件中作为“包含”标签的一部分设置的?

0 投票
5 回答
15978 浏览

rest - 与 Swagger 相比,使用 Spring REST Docs 有什么好处

Spring REST Docs 最近发布,文档说:

这种方法使您摆脱了 Swagger 等工具所施加的限制

所以,我想问一下,与 Swagger 相比,Spring REST Docs 何时更适合使用,以及它释放了哪些限制。

0 投票
1 回答
2926 浏览

java - 如何将 MockMvc 与模拟存储库一起使用?

上下文

  • 我在这里找到了这个问题,但我的问题不同。

  • 所以我们使用Katharsis Controllerand Spring Data Rest

  • 我们只有 1 个控制器用于整个应用程序,然后请求将被发送到Spring Data Rest存储库类。

  • 我们想用来Spring Restdoc生成需要我们用MockMvc.

  • 但是在使用时Mockmvc,它会启动容器并需要设置数据源。

  • 如果我们使用standaloneSetup()并传递模拟存储库类,则MockMvc不会加载Katharsis Controller,因此请求不会到达该存储库。

  • 我知道我们可以创建一个内存数据库,但是我们的项目很大,并且数据库需要创建大量的表,我们希望避免这种情况,因为这些测试是出于文档目的。

问题

有什么方法可以实现这一点并且只模拟目标存储库类?

笔记

存储库是CrudRepositorySpring DataRest.

0 投票
1 回答
16484 浏览

spring - HttpRequestMethodNotSupportedException:不支持请求方法“POST”

使用 MockMvc 创建单元测试我遇到了:

HttpRequestMethodNotSupportedException:不支持请求方法“POST”

这导致测试用例失败,预期为“200”但得到“405”。您可能在 Junit 中看到的一些附加内容是针对 Spring Rest Docs 的,可以忽略。例如 mockMvc 调用上的 @Rule 或 .andDo()。我已遵循以下文档Spring Rest Docs - Path Parameter并且似乎无法使其正常工作。

这是控制器:

这是Junit类:

这是运行测试时的控制台:

0 投票
1 回答
779 浏览

java - 是否可以将 Spring Restdocs 与 Jersey 应用程序一起使用

Spring Restdocs 基于 Spring MVC 测试。所以,我想弄清楚是否可以将 Spring Restdocs 与 Jersey 2.0 REST 应用程序集成。

如果是这样,请您指出任何相关的示例或教程。

0 投票
2 回答
2682 浏览

java - Spring REST Docs:特殊字符未正确显示

在我的 Spring MVC 测试(UTF-8 编码)中,我们发现:

asciidoctor 文件包含

在我渲染它并在我的 Firefox 浏览器中打开生成的 HTML 文件(也是 UTF-8 编码的)之后,我发现

特殊字符如何正确显示?