问题标签 [powermockito]

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

unit-testing - ClassCastException exception when running Robolectric test with Power Mock on multiple files

So I set up the power mock based on the reference guide here. It all seems to run perfectly fine with a single test class. But when executing multiple JUnit tests I am getting the following error on the second test class.

As you can see from the stacktrace below I am trying to mock a otto Bus instance. It seemed to mock properly on the first test class but on the the second class I am getting this class cast exception.

On the stacktrace I am getting suggestion to disable Objenisis cache but I am not sure how to accomplish that and if that is actually the root cause as I am using classloading-xstream:1.6.2 as per the Robolectric Wiki link attached above.

The thing is my setup works well if I run a single JUnit test class, but once I try to run all the tests in a package only the first test will work and subsequent tests will get the class cast exception.

0 投票
1 回答
6433 浏览

java - 错误:类型不匹配:无法从测试转换为注释

我是 junit Mockito 框架的新手,我已经使用 powermock 框架模拟了依赖注入,但是我在 Eclipse 中的@Test注释中遇到错误,错误是“类型不匹配:无法从测试转换为注释”

maven依赖是

0 投票
1 回答
93 浏览

java - 使用 Mockito 控制方法输出

假设我有这样的课程:

现在假设我有一个像这样的单元测试:

请注意,上述断言无效。它将失败,因为方法 getAmountOfStuff 调用了另一个总是返回 10 的方法。我将它们分开以使代码更易于分析。鉴于这个例子,它可能看起来微不足道,但我经常发现自己创建了更大的方法。因此,我在给定的函数中拆分了代码。否则,大量的文本会变得太大/令人困惑,无法分析或修复——更不用说测试了。

所以我需要知道的是如何控制我正在测试的类中某些方法的输出。

0 投票
1 回答
70 浏览

junit4 - Powermockito 对层次结构级别的模拟操作

我的应用程序具有层次结构级别的类对象,如下所示。

包 com.sample.folder1;

包 com.sample.folder2;

被测单元件封装:

当我在eclipse中执行上面的junit时,它会抛出

请建议在相同和不同的包上模拟层次类。

0 投票
2 回答
1267 浏览

junit - 模拟私有方法

我正在尝试模拟一个内部调用私有方法的方法。此私有方法使用方法读取文件classloader.getclass并填充作为类的静态变量的列表。我尝试了所有可能的方法来模拟这个私有方法,但它似乎不起作用。

我正在尝试模拟populateList(),但控件始终进入方法。我通过 mockito 和 powermock 尝试了网上几乎所有的选项,但它似乎不起作用。我的 Junit 如下

类开始有 @RunWith(PowerMockRunner.class) @PrepareForTest(TestLoad.class) ArrayList testList = new ArrayList(); testList.add("00"); TestLoad 实例 = PowerMock.createPartialMock(TestLoad.class,"populateList"); PowerMock.expectPrivate(instance, "populateList").andReturn(testList); PowerMock.replay(实例);

以下是日志供参考:

java.lang.IllegalStateException:无法转换名称为 com.xyz.TestLoad 的类。原因:java.io.IOException:无效常量类型:org.powermock.core.classloader.MockClassLoader.loadMockClass(MockClassLoader.java:266) at org.powermock.core.classloader.MockClassLoader.loadModifiedClass(MockClassLoader.java) 17 :180) at org.powermock.core.classloader.DeferSupportingClassLoader.loadClass(DeferSupportingClassLoader.java:68) at java.lang.ClassLoader.loadClass(ClassLoader.java:357) at java.lang.Class.forName0(Native Method) at java.lang.Class.forName(Class.java:348) 在 org.powermock.modules.junit4.common.internal.impl.JUnit4TestSuiteChunkerImpl.createDelegatorFromClassloader(JUnit4TestSuiteChunkerImpl.java:145) 在 org.powermock.modules.junit4.common。 internal.impl.JUnit4TestSuiteChunkerImpl。

0 投票
1 回答
202 浏览

java - 使用 PowerMockito 模拟 Singleton Public/Void 方法失​​败

所以这是场景:

我正在为 A 类中的 methodA 编写单元测试。为此,我编写了以下存根代码:

现在,在这段代码之后,我有一个代码:

此代码一旦到达就会失败:

我已经使用了以下 Powermockito 程序:

我仍然无法模拟 SingletonClass 的 Public/Void 方法。他们总是出来为空。

0 投票
2 回答
8133 浏览

java - 如何使用 PowerMockito 在具有私有构造函数的类中设置原始私有静态最终字段?

我正在尝试在具有构造函数的类中为 JUnit 测试设置一个private static final字段。private当我将代码归结为基础时,我得到以下信息:

我的测试如下所示:

这是我的 POM 文件的摘录:

当我在 上设置断点时return FLAG;,我可以清楚地看到在 IntelliJ 的调试器FLAG中设置为。true然而,测试失败了AssertionError

有什么想法可以使这项工作有效吗?

更新:使用反射似乎也不起作用:

setField()方法是我可以通过内部库获得的方法。不幸的是,它产生了相同的结果:AssertionError

更新 2:完全摆脱 PowerMock 显然也没有多大帮助:

为此,我什至从类级别中删除了 PowerMock 注释......

我现在也将此问题发布到PowerMock 邮件列表

0 投票
2 回答
3885 浏览

java - No methods matching the name(s) stream in hierarchy of class java.util.Arrays$ArrayList

So I am using java 8 and trying to write some tests with PowerMock and Mockito. I am getting a MethodNotFoundException with the message:

No methods matching the name(s) stream were found in the class hierarchy of class java.util.Arrays$ArrayList.

I double checked the ArrayList documentation and it definitely looks like it inherits stream from Collections. Is this a problem with PowerMockito or am I missing something?

Line in question

Then has something like this called on it

EDIT: After further research this appears to be a PowerMock Problem. Would love a solution.

0 投票
1 回答
1012 浏览

java - 如何使用参数化构造函数模拟类的对象?

对于代码

为了测试,我想创建一个模拟对象。我现在正在做的是

但是,这不允许我在对象上调用 verify(),因为它没有被模拟。怎么做?

0 投票
0 回答
106 浏览

java - 测试使用 Mockito 打印的 void 方法

我有一个只包含一个主方法的类,该方法有一些我需要测试的 System.out.println 调用。我同意这个类的设计不是很好,但我必须保持原样。我不确定在 Mockito 中如何测试正在打印的正确值。我在 StackOverflow 上看到过类似问题的回答,但它们不同,因为对 System.out.println 的调用实际上是在测试中,而不是在被测试的类中。

例如,我想做的一项测试是测试如果发送了无效参数,是否打印了正确的消息: String[] arg = new String[] {"xx", "abcd1234"}; ConnectionPasswordEncryptor.main(arg); 该调用不返回任何内容,而是打印到标准输出。如何检索打印到标准输出的内容?