问题标签 [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 投票
2 回答
1413 浏览

java - 在 NTFS 分区上时,Powermock 会减慢 Eclipse/Fedora 10 上的测试启动速度

我刚刚开始适当地使用 Powermock,并注意到它极大地减慢了测试启动速度。在它运行时快速查看顶部显示 mount.nfts-3g 占用了大部分 CPU。我将 Eclipse 和我的源目录移动到 ext3 分区,看看这是否是个问题,测试现在启动得更快,但仍然有明显的延迟。这对于 Powermock 是正常的还是我遗漏了一些明显的东西?

0 投票
1 回答
1317 浏览

eclipse - 在 Eclipse 中使用 JUnit 4 进行单元测试期间的 Powermock 和加载 jar 文件的问题

我正在使用powermock 1.2.5 来执行一个将数据保存到 Oracle 数据库中的类。当我运行我的测试时,我的单元测试失败并出现以下异常:

NoSuchAlgorithmException : 可以找到 DES 算法。

调试代码后发现,当我的应用程序尝试设置密码以建立数据库连接时,会引发此异常。

我的一些观察是:

  1. 如果我在没有 power mock 的情况下运行单元测试,则不会发生异常。
  2. 如果我手动将 sun-jce.jar 文件包含到单元测试引导程序中,我设法运行单元测试。eclipse.sun-jce.jar 是 jre 库文件夹中的 jar 文件之一。我正在使用 SUN java jre 版本 1.5.0_10

所以我猜想在单元测试运行时以某种方式 power mock 卸载这个特定的 jar 文件。有人在使用 powermock 时遇到类似的问题吗?

我目前正在考虑的一种解决方法是在我的单元测试的 setup() 下以编程方式加载 jar 文件。

0 投票
7 回答
40549 浏览

java - 通过来自 maven 的 PowerMockRunner 使用 Mockito 运行 Junit 和 PowerMock

我无法通过 Maven 运行 Powermock。我是用于驱动 jUnit 测试的 PowerMock Mockito 和 PowerMockRunner。

这是测试:

我没有为运行测试配置任何特别的东西。我的 pom 引用了以下部门:

  • org.mockito | 模拟所有| 1.8.0
  • 君特 | 君特 | 4.6.0
  • org.powermock.modules | powermock-module-junit4 | 1.3.1
  • org.powermock.api | powermock-api-mockito | 1.3.1

当我运行mvn -Dtest=AlertNotificationsTest testmvn 时说没有要运行的测试。但是,如果我从 eclipse 运行相同的测试类,一切运行正常。

难道我做错了什么?


这是我的 pom.xml 下面(相关部分)


这是maven的输出

mvn -Dtest=AlertNotificationsTest 测试

注意:我可以运行其他测试,但我不能运行这个测试。如果我让AlertNotificationsTest类扩展junit.framework.TestCase类被 maven 拾取,但它似乎没有被PowerMockRunner.

这是它的输出:


同样,这些测试在 Eclipse 上运行得很好。


更新我发现了一个可能的问题和解决方法。我有 TestNG 和 JUnit 的测试。如果我从我的 pom 中删除 TestNG 并将我的所有测试迁移到 JUnit,我就可以使用mvn test. 因此,maven 和 junit/testng 组合似乎存在问题。

我希望能够同时运行两者,但如果我找不到方法,我会去回答我自己的问题。谢谢伙计们

0 投票
4 回答
16744 浏览

java - Junit 参数化测试与 Powermock 一起 - 如何?

我一直在试图弄清楚如何在 Junit4 中与 PowerMock 一起运行参数化测试。问题是要使用 PowerMock 你需要用

并使用参数化测试,你必须用

据我所知,他们似乎相互排斥!?这是真的?有没有办法解决?我试图在使用 PowerMock 运行的类中创建一个参数化类;像这样的东西:

但不幸的是,这并没有太大的好处......ParamTestClass仍然不能在 PowerMock 支持下运行(也许并不奇怪)......而且我的想法已经用完了,所以非常感谢任何帮助!

更新: 对于未来的谷歌用户,还请参阅:使用 PowerMock 而不使用 RunWith?

0 投票
1 回答
1413 浏览

nullpointerexception - Powermock:ProcessBuilder redirectErrorStream 给出 nullPointerException

我正在使用 powermock 使用进程构建器来模拟一些本机命令调用。奇怪的是这些测试有时会通过,有时会失败,给出 NPE。这是一个powermock问题还是程序中的一些问题。

这是我正在测试的课程的片段:

单元测试用例是:

我在执行时遇到错误,并且测试用例失败..

注意:我在所有执行中都没有收到此错误。有时它通过,有时它失败。我无法理解这种行为。另外,由于版权问题,我伪装了一些变量名。

0 投票
1 回答
269 浏览

java - 使用powermock 测试返回服务的类?

我想使用 PowerMock 测试某些底层服务,但它很复杂。

我想得到你的建议

我编写了一个 ServiceUtil,它使用 MyServiceClient 来调用和获取服务。

现在我想测试 ServiceUtil 方法 - updateService。我该怎么做?

0 投票
3 回答
4614 浏览

android - 尝试使用 PowerMockito 存根 android Activity 类会抛出 RuntimeException "Stub!"

我发现了这个例子,他们使用 PowerMock 和 EasyMock 来存根/模拟 android 的 Menu 和 MenuItem 类。我一直在尝试使用 Activity 类对 PowerMock 和 Mockito 做类似的事情。

我知道很多方法都是最终的,并且在 Android.jar 中它们都只是抛出 RuntimeException("Stub!")。

我也明白这个测试并不完整,但我只是想看看是否可以模拟 android Activity 类。

但是鉴于 PowerMock 允许您使用最终方法模拟类,这段代码不应该工作吗?

我认为 RuntimeException 将不再发生,并且会返回“Title”,但它仍然会引发异常。

我尝试了各种不同的东西,比如doReturn("Title").when(mockActivity).getTitle();suppress(constructor(Activity.class));

我做错了什么还是这不可能?

0 投票
2 回答
4526 浏览

expect - 扩展方法的 PowerMock 问题

我正在尝试使用 PowerMock 来模拟一些第三方代码,但我遇到了扩展方法的问题。

所以我会给出一个片段来显示正在发生的事情。

现在我正在尝试模拟 ClassA,因为那是我的代码正在使用的。模拟效果很好,但是当我添加这样的期望时:

我收到以下错误:

java.lang.IllegalStateException:在 org.powermock.api.easymock.internal.invocationcontrol.EasyMockMethodInvocationControl.invoke 的 org.easymock.internal.MockInvocationHandler.invoke(MockInvocationHandler.java:43) 中缺少前面方法调用 methodA() 的行为定义(EasyMockMethodInvocationControl.java:95) 在 org.powermock.core.MockGateway.doMethodCall(MockGateway.java:104) 在 org.powermock.core.MockGateway.methodCall(MockGateway.java:167) 在 .ClassC.methodA(ClassC.java )

对我所缺少的有什么想法吗?我知道我没有包含太多细节,但是我已经准备了 ClassA 以使用该符号进行测试,我也只将回放放在一个地方,以确保在设置期望值之前我不会错误地将 mockClassA 置于错误状态。

0 投票
3 回答
5010 浏览

function - 无法使用 powermock-easymock-testng 模拟静态函数(非 Maven 项目)

首先告诉你,我已经尝试过,现在我需要一些帮助

这是我的代码

[解析器] 运行:C:\MockWorkspace\Mock\temp-testng-customsuite.xml

请帮助,我尝试了各种解决方案,无法完成。请任何人都可以尝试此代码并更正它以获得成功吗?我在 EasyMock.expect 中遇到错误......

在http://blogs.bytecode.com.au/glen/2006/10/12/doing-bytecode-kungfu-with-javassist.html得到了解决, 它可以工作但是等等...... .我又被卡住了我的测试用例在单独运行时工作正常,但是当与 Ant 一起运行时,它会出现问题。可能是不同文件的其他测试用例在干扰。当我的个人测试用例使用 @PrepareTest & easymock/powermock 时,我遇到了同样的错误

[测试] =====================静态调用========================= == [testng] javassist.CannotCompileException:由 java.lang.LinkageError:加载程序(sun/misc/Launcher$AppClass Loader 的实例):尝试重复的类定义名称:“com/symantec/mobius/aggregator/submission/SubmissionFactory” [testng] 在 javassist.ClassPool.toClass(ClassPool.java:1085) [testng] 在 javassist.ClassPool.toClass(ClassPool.java:1028) [testng] 在 javassist.ClassPool.toClass(ClassPool.java:986) [testng ] 在 javassist.CtClass.toClass(CtClass.java:1110)

0 投票
2 回答
9588 浏览

java - PowerMock Mockito:如何模拟所有静态方法?

使用 PowerMock(使用 Mockito)时,我们是否需要模拟类的所有静态方法?我的意思是,假设我们有:

我的问题是,如果我需要模拟 getInstance 方法,是否也需要模拟“anotherStaticMethod”?

PowerMock 版本:1.3,Mockito 版本:1.8