问题标签 [powermock]

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

java - powermock 顺序

我使用 PowerMock 来模拟静态方法。我需要验证静态和非静态方法调用的顺序。可以使用 PowerMock 吗?

UPD

我使用 powermockito 扩展来模拟静态方法,因此使用 powermockito 扩展的解决方案更可取。

0 投票
1 回答
1975 浏览

java - junit 重新加载类

我使用 powermock 来模拟 Logger.getInstance() 方法。这会导致一个问题,因为 junit 似乎没有重新加载类并且在第一个测试测试类有错误的记录器实例之后。

测试失败,因为 LoggedClass 有过时的日志实例。我可以显式地注入新的记录器实例,但是当有很多需要模拟的静态变量时,这很麻烦。

如何设置junit在每次运行新测试时重新加载类?

0 投票
1 回答
1436 浏览

dependencies - playframework 应用程序的 powermock 依赖项

我尝试为我的 playframework 应用程序配置依赖项以使用powemock

在我的dependencies.yml中:

要求:

我有测试课:

问题是:我的代码看不到* PowerMockRunner * 类。

另外,阅读这篇文章:

我也将此代码添加到dependencies.yml中(但它对我没有帮助):

那么,如何配置我的依赖项来解决?

0 投票
2 回答
11977 浏览

java - 模拟抽象类

可能重复:
使用 Mockito 测试抽象类

我有一个具有我需要测试的功能的抽象类。我可以在没有抽象方法的操作实现的情况下创建该类的简单派生,但是可以使用模拟框架来完成吗?我需要维护班级内部状态,所以我不能只打电话

我需要个东西

但显然这是不可能的,因为类是抽象的。

0 投票
1 回答
44354 浏览

java - 模拟受保护的方法

我想模拟一个继承的受保护方法。我不能直接从java代码调用这个方法,因为它是从另一个包中的类继承的。我找不到一种方法来指定这个方法来存根when(...)

我查看了PowerMockito.when覆盖,这似乎都只用于私有方法!

如何指定受保护的方法?

0 投票
2 回答
7444 浏览

java - 如何使用 PowerMock 测试从同一类调用另一个私有 void 方法的方法?

我有一个类,其中包含示例中的一些方法。

我想aMethod用 powermock 进行测试,所有方法都应该正常工作,除了voidMethod. 我创建了一个不做任何事情的部分模拟TestClassvoidMethod但我不知道如何期望调用此方法。

我在第二行收到错误:

EasyMock 类型中的方法 expect(T) 不适用于参数 (void)

我该如何解决这个问题?

0 投票
2 回答
1443 浏览

java - PowerMock 可以在没有注释的情况下使用吗?

我正在尝试将 PowerMock 用作另一个应用程序中的库。有没有办法在不使用注释的情况下使用它来模拟静态方法调用(我在 Clojure 中,它并没有真正做注释)

0 投票
1 回答
8209 浏览

java - 使用 mockito 模拟类时出现 ClassNotFound 错误

我正在尝试使用 Mockito 和 PowerMock 来模拟一个类。这是测试

尝试运行测试时出现以下错误。

这个错误被抛出模拟(Util.class)。

这些是我正在使用的以下 pom 依赖项:

任何帮助都值得赞赏。

谢谢!!

0 投票
3 回答
16160 浏览

java - java.lang.LinkageError: ClassCastException

我确实遇到了 TestNG 和 RESTeasy 的一个非常烦人的问题。

我确实有一个类针对使用 RESTeasy 框架来公开自身的 API 类运行多个测试。

但是,如果我让测试使用 maven (mvn test) 运行,则会出现以下异常:

该测试仅调用返回 Response 对象(来自 RESTeasy)的 API 对象的方法。作为测试框架,我确实使用了 TestNG。

测试方法

问题描述

看起来 RESTeasy 框架将 RuntimeDelegate 加载到不同的类加载器中。如果我看一下源代码,那么 RuntimeDelegate 有以下方法(涵盖第 126 行):RuntimeDelegate.java

所以与错误相关的主要语句是instanceof check:

如果我检查委托实例的类加载器与 RuntimeDelegate 的类加载器,则会得到以下输出:

我知道这当然行不通,但我想知道为什么 RESTeasy 的东西被加载到 MockClassLoader 而不是另一个。特别是因为我不模拟经过测试的 TokenAPI。

奇怪的事实

奇怪的是,当我从 IntelliJ 运行测试时(我选择只运行包含产生错误的方法的给定类的所有测试),然后它就会运行。看起来它与 mvn test 运行来自 maven 项目的所有测试这一事实有某种关系(或者至少我猜是这样)。

0 投票
1 回答
4503 浏览

unit-testing - 使用 PowerMock 模拟静态最终方法

我有所有静态和最终方法的类。如何模拟类中的静态和最终方法。

如何模拟utilMethod()anotherUtilMethod()使用 PowerMock?