问题标签 [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.
powermock - 如何使用 PowerMock 模拟非静态方法
我正在尝试模拟我的测试方法的内部方法调用
我的课看起来像这样
当我为 getStudent() 方法编写 junit 时,PowerMock 中有没有办法模拟该行
或者让 App 类在 junit 执行期间使用模拟 dao 对象,而不是连接到数据库的实际 dao 调用?
junit - 私有设置器 NullPointer 上的 PowerMokito doNothing()
问题:尝试执行 PowerMockito.doNothing() 时引发 Nullpointer 异常。
我需要创建一个 partialMockObject 类,该类将返回一个私有方法值并且对另一个私有 setter 方法不执行任何操作。
如果我用 supress() 替换 doNothing() 但我想弄清楚这一点,我就能让它工作。
代码:
StackTrace:' org.powermock.api.mockito.internal.expectation.PowerMockitoStubberImpl.when(PowerMockitoStubberImpl. java:43) 在 org.powermock.api.mockito.internal.expectation.PowerMockitoStubberImpl.when(PowerMockitoStubberImpl.java:104)
unit-testing - 使用 PowerMock 的 TestNG 数据提供程序
我正在使用 Mockito 和 TestNG 进行单元测试。我有要模拟的静态方法,我尝试过 PowerMock。不幸的是,我无法在 TestNG 中使用 DataProvider 和 PowerMock。
问题:在使用 PowerMock 时是否可以使用 TestNG 的 DataProvider?
powermock - 扩展方法的 PowerMokito 问题
问题:无法在扩展类的返回对象上存根方法。我只是在我试图存根的方法上获得空指针。我需要先对对象进行间谍活动吗?我也试过了,但没有用。
测试框架:PowerMockito 1.9 版 PowerMock 1.4.11 版 EasyMock 3.1 版
尝试测试的代码行。
String expected = methodFromExtendedClass_GetObject().getStringValueFromReturnObject();
测试代码
PowerMockito.stub(MemberModifier.method(ExtendedClassA.class, "methodFromExtendedClass_GetObject()")).toReturn(new testObject());
PowerMockito.stub(MemberModifier.method(testObject.class, "getStringValueFromReturnObject")).toReturn(testString);
java - 使用 PowerMock 和 Mockito 模拟 Logger 和 LoggerFactory
我有以下要模拟的 Logger,但要验证日志条目被调用,而不是内容。
我想模拟用于 LoggerFactory.getLogger() 的任何类,但我不知道该怎么做。到目前为止,这是我最终的结果:
我想知道:
- 我可以模拟静态
LoggerFactory.getLogger()
以适用于任何课程吗? - 我似乎只能在其中运行
when(loggerMock.isDebugEnabled()).thenReturn(true);
,@Before
因此我似乎无法更改每种方法的特征。有没有解决的办法?
编辑结果:
我以为我已经尝试过了,但没有奏效:
但是谢谢你,因为它确实有效。
但是,我尝试了无数种变化:
我无法让 loggerMock 在外部改变其行为,@Before
但这仅发生在 Coburtura 上。使用 Clover,覆盖率显示为 100%,但无论哪种方式仍然存在问题。
我有这个简单的课程:
然后我有这个测试:
在三叶草中,我显示了 100% 的if(logger.isDebugEnabled()){
块覆盖率。但是,如果我尝试验证loggerMock
:
我得到零互动。我也试过PowerMockito.verifyStatic()
;但@Before
也有零相互作用。
这似乎很奇怪,Cobertura 显示if(logger.isDebugEnabled()){
不是 100% 完成,而 Clover 确实如此,但两者都同意验证失败。
jsf - 使用 PowerMock 分析 JUnit 测试?
我们有几个非常慢的 JUnit 测试,它们大量使用模拟,包括静态函数的模拟。单项测试需要 20-30 秒,整个“mvn 测试”需要 25 分钟。
我想分析时间浪费在哪里,但在分析方面经验很少。
我假设依赖模拟对象的初始化需要很长时间。
两个问题:
1)如何快速获取数字,哪些方法浪费了时间?我不需要复杂的高级用户工具,只需要一些基本的东西来获取数字。(证明我们所做的那种嘲笑是邪恶的)
2) 你知道哪些设计缺陷会产生如此糟糕的时序吗?我们测试应该调用模拟服务的支持 JSF 的 bean。也许支持 bean 中可能存在一些输入验证或未重构的业务逻辑,但无法更改(请不要对此发表评论;-))
广告 2)例如,一项测试有大约 30 个(!)类要准备使用 @PrepareForTest 进行测试。这不可能是好事,但我无法解释为什么。
java - PowerMock EasyMock 基础知识
这可能是 PowerMock/EasyMock 101 问题,我不知道为什么。我有一个带有方法的 C 类
在我对 testOuter() 方法的测试中,我想确保使用适当的参数调用 testInner。为此,我正在做这样的事情: [@RunWith(PowerMockRunner.class) @PrepareForTest(EmailUtil.class) 在类级别声明]
但我收到错误:
我用 EasyMock.IsA(String.class) 替换了实际参数,但仍然没有运气。我很确定我在这里做的事情基本上很愚蠢。有什么帮助吗?
json - 有没有人对 JsonpRequestBuilder 进行过 PowerMocked?
我需要PowerMock
一个JsonpRequestBuilder
. 我应该如何处理回调链?
先感谢您。
java - 使用 Ant 运行 Powermock 套件会导致 ClassCastExceptions
测试服在eclipse中运行得很好。但是,当我们尝试使用 ANT 运行套装时,它会引发以下错误:
正如网上许多人所建议的那样,我们试图忽略这些类,如下所示:
这并没有解决问题,我们开始收到此错误:
在对前面的示例进行了一段时间的尝试之后,似乎我们只是在将问题推到后面,以便稍后由其他代码处理。我们也一直在研究如何加载罐子,以便我们可以解决任何冲突,但到目前为止我们还没有运气。有人可以提供的任何帮助都会很棒。
unit-testing - 如何使用 PowerMock / Mockito / EasyMock 使用模拟对象进行依赖注入?
我有一个AuthenticationManager.authenticate(username,password)
在被测 SomeService 的 someMethod 中调用的方法。AuthenticationManager 被注入到 SomeService 中:
现在对于单元测试,我需要验证方法来假装它正常工作,在我的情况下什么都不做,所以我可以测试方法本身是否完成了预期的工作(根据单元测试原则在其他地方测试了身份验证,但是身份验证需要在该方法中被调用)所以我在想,我需要SomeService
使用一个模拟,当被调用AuthenticationManager
时,它只会返回并且什么都不做。authenticate()
someMethod()
我如何使用 PowerMock(或 EasyMock / Mockito,它们是 PowerMock 的一部分)来做到这一点?