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

3

我正在尝试在另一个应用程序中使用PowerMock作为一个库。是否有一种方法可以在不使用注解的情况下使用它来模拟静态方法调用(我在Clojure中,它并不真正使用注解)?

2个回答

2
根据 powermock 的支持以及 这篇博客,我猜想在测试中无法避免使用注释。我认为我们需要使用 @PrepareForTest(StaticClass.class) 注释。所以我认为至少无法避免使用 @PrepareForTest。也许我是错的,但我只是想分享一下我发现的东西。

0

实际上,虽然最终解决方案的方式很痛苦,但这是可能的。

PowerMock runner只是在不同的类加载器中初始化测试环境,在该类加载器中,由PrepareForTest注释指定的类被Javassist调整。因此,假设您模仿类加载器的工作并自己调用Javassist,则可以实现相同的效果。

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


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接