PowerMock可以在没有注释的情况下使用吗?

时间:2012-01-07 22:40:03

标签: java clojure annotations mocking powermock

我正在尝试将PowerMock用作另一个应用程序中的库。有没有办法用它来模拟静态方法调用而不使用注释(我在Clojure中并没有真正做注释)

2 个答案:

答案 0 :(得分:2)

根据powermock支持和this blog,我猜测无法避免注释中的注释。我想我们需要@PrepareForTest(StaticClass.class)。所以我认为至少不能避免@PrepareForTest。可能是我错了,但只想分享我找到的东西。

答案 1 :(得分:0)

事实上,尽管最终解决方案的方法很痛苦,但这是可能的。

PowerMock运行器只是在不同的类加载器中初始化测试环境,其中PrepareForTest注释中指定的类由Javassist调整。所以假设你模仿了类加载器的工作并且自己调用了Javassist,你可以达到同样的效果。

作为一个例子,我使用PowerMock(没有注释的内部)来发现给定方法引用的方法名称。更多信息可以在我的blog上找到(捷克语,有工作示例)。我强调这种用法只是实验性的,不适合生产用途。