我有折叠代码:
@RunWith(PowerMockRunner.class)
@PrepareForTest({RequestUtils.class, OsgiUtil.class})
@PowerMockIgnore({"*"})
public class MyTest
...
@Test
public somMethod(){
....
mockStatic(RequestUtils.class);
when(RequestUtils.getLocale(request)).thenReturn(locale);
}
}
根据以下链接中描述的原因,我无法使用@runwith(PowerMockRunner.class)
请看下面的讨论:使用@Runwith Annotation和powerMock时出现的问题
其中一个答案建议使用PowerMockRule
而不是runner。这个解决方案应该对你有好处。
在安装到AEM 5.6.1实例之前,我正在使用maven构建和测试我的代码。我已经编写了单元测试,这些测试使用wcm的实现从aem模拟中获益。io和其他需要使用powermockito模拟静态方法的单元测试。 以下是我对aem上下文、sling Mock和powermock的maven依赖关系。 在我的课堂上,我正在为aem上下文设置规则,并准备一些用于模拟的静态类: 当我通过命令行运行mvn测试
Java7&8在使用Mockito和PowerMockRunner时弹出新的错误,当涉及静态final变量时,java将抛出字节代码异常中的错误。这是由于现在更严格的字节码验证和模拟静态最终对象编辑字节码,以便成功模拟。 我有以下的类,我试图嘲弄: 我已经看到,您可以通过使用反射来解决这个问题,这里看到了如何使用JUnit、EasyMock或PowerMock模拟静态最终变量,这里看到了Power
问题内容: 我对Java的座右铭是“仅仅因为Java具有静态块,并不意味着您应该使用它们。” 除了笑话,Java中还有许多使测试成为噩梦的技巧。我最讨厌的两个是匿名类和静态块。我们有很多使用静态块的遗留代码,这些是我们编写单元测试时最讨厌的点之一。我们的目标是能够以最小的代码更改为依赖于此静态初始化的类编写单元测试。 到目前为止,我对同事的建议是将静态块的主体移到私有的静态方法中并对其进行调用。然
问题内容: 我的代码中有一个静态方法,希望以某种方式进行模拟。 我正在使用jmock。 我想可以做到这一点的一种方法是在静态方法周围设置“包装类”并模拟该方法,但是我希望有一个更好的解决方案。 我要用这种错误的方式? 反馈: 我将要有一个接口和一个类,该接口和类具有一个仅称为静态方法的方法。这将允许我通过仅模拟对此包装器类的调用来模拟逻辑。(即使谈论它我也觉得很脏:)) 问题答案: 我们不支持在j
有没有办法用参数模拟静态方法。 我看到了很多关于这个问题的问题,但是我找不到任何与之相关的问题。