java - 如何模拟来自第三方库的类的静态调用

标签 java testing mocking powermock proxy-classes

我想知道是否可以使用 PowerMock 或任何其他库来模拟库中类中的静态调用。该第三方库中的类调用了 rt.jar 中的一个类,我想要返回该返回的 Type 的自定义实现。我正在尝试在测试代码之外执行此操作。

否则,我必须从该库中扩展一些类并替换一些实现。以前有人做过这样的事情吗?

最佳答案

是的,这是可能的,例如如果您只想模拟一种方法,请使用 PowerMock.mockStatic()PowerMock.mockStaticPartial()

PowerMock主页上有一个很好的教程。

我发布了 an example on SO .

[编辑] 但是,如果您想在生产代码中使用这种魔法,我建议不要使用测试框架。也许Groovy可以帮助您 - Groovy 可以在运行时操作类(甚至 JDK 类),并且(我认为)它是 JVM 之上的一个更薄的层。

关于java - 如何模拟来自第三方库的类的静态调用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15334511/

相关文章:

python - 哪个更糟糕的设计 : sharing data between tests, 或每个测试的多个断言?

Java 将模式写入文件

java - 如何使用 Akka actors 处理 Java futures

java - Android 图像大小调整

c# - 如何监控每个http请求?

Python 单元测试 - 是否应该模拟其他 ClassMethods?

java - 如何获得 Ivy 的依赖

c# - 什么是 C# 测试驱动程序以及为什么要实现它

java - 对不遵循 SOLID 原则的类进行部分模拟(尤其是依赖注入(inject))

google-analytics - 是否可以运行查询的模拟数据分析工具?