问题标签 [jersey-test-framework]

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 回答
270 浏览

tomcat - 我的 JUnit 测试如何找到我的 Tomcat 数据源?

我正在尝试测试我的 REST 服务。我正在使用 Jersey2 的 JerseyTest 和提供的 JDK HttpServer 框架。我需要测试来访问 META-INF/context.xml 中定义的数据源。这些服务部署在 Tomcat 上。

如何将 ContextConfig 添加到 ResourceConfig 以使其正常工作?

这是设置代码,目前不起作用。上下文似乎没有注册。

这是测试代码:

这是服务尝试查找数据源时的异常:

0 投票
1 回答
1090 浏览

java - Jersey/Spring/Grizzly 集成测试始终返回 500 - 无详细信息

我正在尝试为使用 Jersey 和一些 Spring DI 的应用程序编写一些集成测试。测试总是以 500 的形式返回,没有真正的解释。Grizzly 似乎可以正常启动,并且可以很好地启动我的休眠连接。这是错误跟踪以及所有相关文件,没有被测类。我认为这可能是 Grizzly 和配置的问题,但我找不到任何似乎可行的方法,包括切换到 webappcontext。

测试班

Web.xml - 工作- 应用程序在 Tomcat 下运行良好,我可以通过邮递员访问整个 API。

Pom.xml

0 投票
1 回答
765 浏览

testng - 使用带有 Jersey Test + TestNg 的 powermock 测试 Jersey 休息服务时的问题

开发了使用泽西岛的休息服务。现在我想为此 Web 服务编写一些集成测试,但由于并非 Web 服务中使用的每个类都已实现,因此我需要模拟其中的一些。例如,我有以下课程:

然后我想用 Jersey 测试框架和 TestNg + Powermock(用构造函数模拟新对象)来测试做集成测试。

我的 pom 依赖:

但是在运行时,getIt() 方法中的实例 ServiceA 仍然初始化为新的 ServiceA 对象,而不是 mockA 对象。

有什么想法吗?谢谢,

如果添加 PowerMockIgnore({"javax.ws. ", "org.glassfish. "}),则查看以下异常:

0 投票
2 回答
844 浏览

java - 运行 jerseyTest 的 filenotfoundexception - 缺少 applicationContext.xml

我正在对 Hello World 进行测试,试图在我的 spring java 程序中遵循 Jersey 框架。

我已经扩展了 JerseyTest,但我收到了上面的错误。泽西岛提供链接的示例似乎没有帮助。

0 投票
3 回答
2083 浏览

java - 静态初始化程序在 JUnit 测试期间不运行

我在这里有一个有趣的 JUnit 问题(JUnit 4.12)。我有一个只有静态方法的基类。由于它们的使用方式,它们必须是静态的。我从基类继承其他类。所以,如果基类是Base,我们有ChildAChildB

大多数方法都包含在基类中,但它必须知道它实际上是哪个子类(只是调用这些方法作为基类是无效的)。这是通过基类中的静态数据成员完成的:

每个孩子通过静态初始化器设置数据成员,因此:

然后当方法被调用时,基类知道它是什么类型并加载适当的配置(类型实际上是一个配置名称)。

这一切都在运行应用程序时完美运行。在调试器中单步执行它并通过日志消息,我可以看到设置了适当的类型,并且方法根据子类型加载了适当的配置。

使用 JUnit 时会出现问题。我们有一些 JUnit 测试来测试每个基类方法。由于只调用基类的方法是无效的,我们调用子类的方法,因此:

这“总是失败”。为什么?静态初始化程序永远不会被调用。当将代码作为应用程序运行时,它会被调用,每个人都很高兴。当我将它作为 JUnit 测试运行时,会跳过静态初始化程序并且方法具有无效数据。JUnit 在做什么来跳过静态初始化程序?有办法解决吗?

细节

实际上,我们并没有像我上面发布的那样调用该方法。我只是希望这个例子尽可能清楚。实际上,我们有一个用 Jersey 框架编写的 Web 服务。调用的方法是 REST 端点之一。

我们这样称呼它(对于丑陋的语法感到抱歉,这就是它的工作方式):

所有的 GET 测试都有效,并且所有这些测试都调用了静态初始化程序。只是这个 POST 失败了,而且只有在运行 JUnit 测试时才会失败。

0 投票
1 回答
482 浏览

java - 使用 Jersey 测试框架、TestNG 和 Maven 进行内存测试

我正在构建一个使用 Maven 构建并使用 Jersey 进行 RESTful API 的 Web 项目。我已经使用 TestNG 和 Jersey 测试框架编写了单元测试,并且在内存中而不是在 Web 服务器上运行它们。

在我的测试中,我对我的 MySQL 数据库进行了 JDBC 调用并得到了一些结果。当我使用 TestNG for Eclipse 插件在 Eclipse 中运行时,测试运行良好。但是,当我尝试使用以下两个命令之一从 Maven 运行时:

或者

我得到如下所示的输出:

在此处输入图像描述

我的 pom.xml 如下:

感谢您的帮助,因为这让我发疯。我不确定我到底错过了什么。

0 投票
0 回答
247 浏览

rest - 带有泽西岛的 PowerMock,InternalServerErrorException 错误

我们有一个 gradle Jersey 项目,我们正在尝试使用 PowerMock 和 EasyMock(和 JUnit)进行单元测试,因为我们有几个需要模拟的静态方法。我们终于让 PowerMock 与 Jersey 一起工作(参见这个问题),但 PowerMock 只允许我们的 REST 调用返回字符串。所有其他返回类型(例如 Lists)都会导致InternalServerErrorException. 完整的堆栈跟踪:

单元测试中的 REST 调用在没有 PowerMock 的情况下工作;使用 PowerMock 运行时它们会失败。我们无法发现我们做错了什么。

以下是我们的单元测试示例(整个类):

.get行中的thisTestFails()行是堆栈跟踪报告失败的行。

如您所见,我们在测试中甚至没有做任何 PowerMock-ey 操作。这PowerMockStringWrapper只是一个包装 String 的小类,因为 Jersey(出于某种原因)不能返回基本字符串的列表。再一次,这两个单元测试都可以在没有 PowerMock 的情况下工作,但是一旦我们打开 PowerMock,第二个单元测试就会失败。

任何人都可以提出任何建议吗?

0 投票
0 回答
187 浏览

java - Jersey 测试框架中的 EclipseLink 阻塞测试

我正在尝试为 SCIM 客户端实现编写一些集成测试,而 EclipseLink 阻止了我。

SCIM 用户模式包括一个嵌套的电子邮件对象。电子邮件有一个名为“类型”的字段。这是标准的一部分,不是鉴别器字段。然而,EclipseLink 显然已经决定任何名为“类型”的字段都是一个鉴别器,并在试图反序列化我的请求时爆炸。

我不确定如何告诉 EclipseLink 这个第三方实体没有使用继承,它只有一个名为“type”的字段。

我正在使用 PennState SCIMple Identity客户端库。

0 投票
1 回答
557 浏览

java - 如何使用带有 Jersey 的 @QueryParam 定义和测试 DELETE 操作端点?

我可以@QueryParam在定义 DELETE 操作时使用吗?如果是,当我需要使用 jersey 客户端对其进行测试时,java 代码会是什么样子?我尝试了类似的东西

但它不起作用。

0 投票
1 回答
291 浏览

java - 在自定义提供程序的测试中找不到 MessageBodyProvider - 手动工作

我知道对于应用程序类型问题未找到错误“MessageBodyProvider”已经被问了很多时间,但我的情况有点不同。

当我通过 Fiddler 或在浏览器中手动调用 REST API 时,REST 工作正常。因此,测试似乎有些奇怪。我无法理解这一点。

我有一个自定义 Json 提供程序(Gson)和我的测试类:

在我的测试类中,我只是尝试做一个 POST 请求: