问题标签 [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.
tomcat - 我的 JUnit 测试如何找到我的 Tomcat 数据源?
我正在尝试测试我的 REST 服务。我正在使用 Jersey2 的 JerseyTest 和提供的 JDK HttpServer 框架。我需要测试来访问 META-INF/context.xml 中定义的数据源。这些服务部署在 Tomcat 上。
如何将 ContextConfig 添加到 ResourceConfig 以使其正常工作?
这是设置代码,目前不起作用。上下文似乎没有注册。
这是测试代码:
这是服务尝试查找数据源时的异常:
java - Jersey/Spring/Grizzly 集成测试始终返回 500 - 无详细信息
我正在尝试为使用 Jersey 和一些 Spring DI 的应用程序编写一些集成测试。测试总是以 500 的形式返回,没有真正的解释。Grizzly 似乎可以正常启动,并且可以很好地启动我的休眠连接。这是错误跟踪以及所有相关文件,没有被测类。我认为这可能是 Grizzly 和配置的问题,但我找不到任何似乎可行的方法,包括切换到 webappcontext。
测试班
Web.xml - 工作- 应用程序在 Tomcat 下运行良好,我可以通过邮递员访问整个 API。
Pom.xml
testng - 使用带有 Jersey Test + TestNg 的 powermock 测试 Jersey 休息服务时的问题
开发了使用泽西岛的休息服务。现在我想为此 Web 服务编写一些集成测试,但由于并非 Web 服务中使用的每个类都已实现,因此我需要模拟其中的一些。例如,我有以下课程:
然后我想用 Jersey 测试框架和 TestNg + Powermock(用构造函数模拟新对象)来测试做集成测试。
我的 pom 依赖:
但是在运行时,getIt() 方法中的实例 ServiceA 仍然初始化为新的 ServiceA 对象,而不是 mockA 对象。
有什么想法吗?谢谢,
如果添加 PowerMockIgnore({"javax.ws. ", "org.glassfish. "}),则查看以下异常:
java - 运行 jerseyTest 的 filenotfoundexception - 缺少 applicationContext.xml
我正在对 Hello World 进行测试,试图在我的 spring java 程序中遵循 Jersey 框架。
我已经扩展了 JerseyTest,但我收到了上面的错误。泽西岛提供链接的示例似乎没有帮助。
java - 静态初始化程序在 JUnit 测试期间不运行
我在这里有一个有趣的 JUnit 问题(JUnit 4.12)。我有一个只有静态方法的基类。由于它们的使用方式,它们必须是静态的。我从基类继承其他类。所以,如果基类是Base
,我们有ChildA
和ChildB
。
大多数方法都包含在基类中,但它必须知道它实际上是哪个子类(只是调用这些方法作为基类是无效的)。这是通过基类中的静态数据成员完成的:
每个孩子通过静态初始化器设置数据成员,因此:
然后当方法被调用时,基类知道它是什么类型并加载适当的配置(类型实际上是一个配置名称)。
这一切都在运行应用程序时完美运行。在调试器中单步执行它并通过日志消息,我可以看到设置了适当的类型,并且方法根据子类型加载了适当的配置。
使用 JUnit 时会出现问题。我们有一些 JUnit 测试来测试每个基类方法。由于只调用基类的方法是无效的,我们调用子类的方法,因此:
这“总是失败”。为什么?静态初始化程序永远不会被调用。当将代码作为应用程序运行时,它会被调用,每个人都很高兴。当我将它作为 JUnit 测试运行时,会跳过静态初始化程序并且方法具有无效数据。JUnit 在做什么来跳过静态初始化程序?有办法解决吗?
细节
实际上,我们并没有像我上面发布的那样调用该方法。我只是希望这个例子尽可能清楚。实际上,我们有一个用 Jersey 框架编写的 Web 服务。调用的方法是 REST 端点之一。
我们这样称呼它(对于丑陋的语法感到抱歉,这就是它的工作方式):
所有的 GET 测试都有效,并且所有这些测试都调用了静态初始化程序。只是这个 POST 失败了,而且只有在运行 JUnit 测试时才会失败。
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,第二个单元测试就会失败。
任何人都可以提出任何建议吗?
java - Jersey 测试框架中的 EclipseLink 阻塞测试
我正在尝试为 SCIM 客户端实现编写一些集成测试,而 EclipseLink 阻止了我。
SCIM 用户模式包括一个嵌套的电子邮件对象。电子邮件有一个名为“类型”的字段。这是标准的一部分,不是鉴别器字段。然而,EclipseLink 显然已经决定任何名为“类型”的字段都是一个鉴别器,并在试图反序列化我的请求时爆炸。
我不确定如何告诉 EclipseLink 这个第三方实体没有使用继承,它只有一个名为“type”的字段。
我正在使用 PennState SCIMple Identity客户端库。
java - 如何使用带有 Jersey 的 @QueryParam 定义和测试 DELETE 操作端点?
我可以@QueryParam
在定义 DELETE 操作时使用吗?如果是,当我需要使用 jersey 客户端对其进行测试时,java 代码会是什么样子?我尝试了类似的东西
但它不起作用。
java - 在自定义提供程序的测试中找不到 MessageBodyProvider - 手动工作
我知道对于应用程序类型问题未找到错误“MessageBodyProvider”已经被问了很多时间,但我的情况有点不同。
当我通过 Fiddler 或在浏览器中手动调用 REST API 时,REST 工作正常。因此,测试似乎有些奇怪。我无法理解这一点。
我有一个自定义 Json 提供程序(Gson)和我的测试类:
在我的测试类中,我只是尝试做一个 POST 请求: