PowerMock有什么好的替代品吗?

Ale*_*hen 7 java unit-testing mocking powermock

我正在测试一些遗留代码并尝试使用PowerMock来模拟静态方法调用.我很快发现它与类加载器混淆,这不是我觉得有资格深入研究的那种问题.仅供参考我的问题与类似,但在我的案例中发布的解决方案不起作用.

有没有什么比PowerMock更好的替代品,我可以尝试哪些能够模拟静态,与TestNG兼容并成功用于某些现场项目?

我知道最好的选择是可测试的代码,但并不总是可以重构我当前的项目.

Woj*_*tek 1

您有几个选择:

  • 使用允许静态模拟的不同进程内模拟工具,例如 Mockito(Mockito 从 3.4.0 版本开始支持模拟静态方法),看看您突出显示的问题是否消失。这很可能不是工具问题,而是方法问题,所以请阅读下一点。
  • 使用在线测试替身而不是进程内模拟,这样您就可以黑盒测试应用程序,而不必使用静态模拟或重构代码。您可以通过存根或模拟依赖系统来实现这一点,而不是专注于单个类或方法