问题标签 [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.
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.
java - 错误:类型不匹配:无法从测试转换为注释
我是 junit Mockito 框架的新手,我已经使用 powermock 框架模拟了依赖注入,但是我在 Eclipse 中的@Test
注释中遇到错误,错误是“类型不匹配:无法从测试转换为注释”
maven依赖是
java - 使用 Mockito 控制方法输出
假设我有这样的课程:
现在假设我有一个像这样的单元测试:
请注意,上述断言无效。它将失败,因为方法 getAmountOfStuff 调用了另一个总是返回 10 的方法。我将它们分开以使代码更易于分析。鉴于这个例子,它可能看起来微不足道,但我经常发现自己创建了更大的方法。因此,我在给定的函数中拆分了代码。否则,大量的文本会变得太大/令人困惑,无法分析或修复——更不用说测试了。
所以我需要知道的是如何控制我正在测试的类中某些方法的输出。
junit4 - Powermockito 对层次结构级别的模拟操作
我的应用程序具有层次结构级别的类对象,如下所示。
包 com.sample.folder1;
包 com.sample.folder2;
被测单元件封装:
当我在eclipse中执行上面的junit时,它会抛出
请建议在相同和不同的包上模拟层次类。
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。
java - 使用 PowerMockito 模拟 Singleton Public/Void 方法失败
所以这是场景:
我正在为 A 类中的 methodA 编写单元测试。为此,我编写了以下存根代码:
现在,在这段代码之后,我有一个代码:
此代码一旦到达就会失败:
我已经使用了以下 Powermockito 程序:
我仍然无法模拟 SingletonClass 的 Public/Void 方法。他们总是出来为空。
java - 如何使用 PowerMockito 在具有私有构造函数的类中设置原始私有静态最终字段?
我正在尝试在具有构造函数的类中为 JUnit 测试设置一个private static final
字段。private
当我将代码归结为基础时,我得到以下信息:
我的测试如下所示:
这是我的 POM 文件的摘录:
当我在 上设置断点时return FLAG;
,我可以清楚地看到在 IntelliJ 的调试器FLAG
中设置为。true
然而,测试失败了AssertionError
。
有什么想法可以使这项工作有效吗?
更新:使用反射似乎也不起作用:
该setField()
方法是我可以通过内部库获得的方法。不幸的是,它产生了相同的结果:AssertionError
更新 2:完全摆脱 PowerMock 显然也没有多大帮助:
为此,我什至从类级别中删除了 PowerMock 注释......
我现在也将此问题发布到PowerMock 邮件列表。
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.
java - 如何使用参数化构造函数模拟类的对象?
对于代码
为了测试,我想创建一个模拟对象。我现在正在做的是
但是,这不允许我在对象上调用 verify(),因为它没有被模拟。怎么做?
java - 测试使用 Mockito 打印的 void 方法
我有一个只包含一个主方法的类,该方法有一些我需要测试的 System.out.println 调用。我同意这个类的设计不是很好,但我必须保持原样。我不确定在 Mockito 中如何测试正在打印的正确值。我在 StackOverflow 上看到过类似问题的回答,但它们不同,因为对 System.out.println 的调用实际上是在测试中,而不是在被测试的类中。
例如,我想做的一项测试是测试如果发送了无效参数,是否打印了正确的消息: String[] arg = new String[] {"xx", "abcd1234"}; ConnectionPasswordEncryptor.main(arg); 该调用不返回任何内容,而是打印到标准输出。如何检索打印到标准输出的内容?