3

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

4

2 回答 2

2

根据powermock支持和这个博客,我想在测试中没有办法避免注释。我想我们需要@PrepareForTest(StaticClass.class)然而。@PrepareForTest所以我相信至少是不可能避免的。可能是我错了,但只是想分享我的发现。

于 2012-01-08T08:41:20.217 回答
0

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

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

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

于 2018-02-02T13:28:02.527 回答