jax-rs - 是否有一种无需部署即可集成测试 JAX-RS 服务的机制(例如 MockMVC)?

标签 jax-rs cxf integration-testing rest-assured karate

我已经使用 Mock MVC 成功地为 Spring MVC REST 服务构建了无需部署的集成测试框架。我正在努力对 JAX-RS 服务做同样的事情。

REST Assured 看起来很有希望,但它似乎需要部署。测试套件可以启动一个 CXF 服务器,但它可以与一个 servlet 容器连接起来吗?

Mock MVC 提供的独特值(value)似乎在它的 mock servlet 容器中。是否有任何其他技术提供此功能。

JAX-RS testing page of the CXF documentation提供注入(inject)模拟的模式 HttpServletRequest 进入 CXF 调用程序。这让我想到...

Spring MVC 的模拟 servlet 元素( MockHttpServletRequest 等)来自 Spring 测试模块,独立于 Mock MVC。我们能否将这些对象注入(inject)到 CXF 调用程序中?或者这将是一个兔子洞?

有没有人想出解决这个问题的方法?

.

最佳答案

Daniel - 我是 Karate 的开发者我一直在尝试的是结合使用 Mockito 和 HTTPServletRe**** 的 Spring 模拟来直接调用 servlet 并避免启动应用程序服务器。

由于 Karate 有这个swappable abstraction of an http-client ,我正在考虑在不久的将来添加此选项。

只是分享以防万一它对您有帮助,或者如果您想比较笔记。随意在 GitHub 上打开一个线程。

更新:我在这方面取得了很好的进展 - 请查看 this thread一个工作的例子。

关于jax-rs - 是否有一种无需部署即可集成测试 JAX-RS 服务的机制(例如 MockMVC)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44812650/

相关文章:

java - JAXRS 的 GET 方法的多个参数

java - JAX-RS + EJB,ejb 内的 SecurityContext 为 null,在 WildFly 10.1 上

java - 使用 CXF 发布非 Spring Web 服务

java - 设置恶意 xml 的 Apache CXF 总线属性

java - Java 7 中集成测试文件系统相关代码

java - 异常 : AbstractMethodError: javax. ws.rs.core.Response.getStatusInfo()Ljavax/ws/rs/core/Response$StatusType;

java.lang.LinkageError : ClassCastException: attempting to castjar 错误

java - 将多个参数传递给 web.xml 中的 org.apache.cxf.jaxrs.swagger.Swagger2Feature

c# - Asp Net Core 集成测试 - 方法不允许响应

java - Flying Saucer/OpenPdf相同的字符串html内容但不同的字节[]