java - PowerMock 有什么好的替代品吗?

标签 java unit-testing mocking powermock

我正在测试一些遗留代码并尝试使用 PowerMock 来模拟静态方法调用。我很快发现它与类加载器混淆了,这不是我认为有资格深入研究的问题。仅供引用,我的问题类似于 this但是在我的情况下发布的解决方案不起作用。

PowerMock 有什么好的替代品我可以尝试,它们能够模拟静态,与 TestNG 兼容并在一些现场项目中成功使用?

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

最佳答案

你有几个选择:

  • 使用不同的进程内模拟工具,允许静态模拟,例如 Mockito (Mockito supports mocking static methods since version 3.4.0),以查看您突出显示的问题是否消失。很可能不是工具问题,而是方法问题,所以请阅读下一点。
  • 使用over-the-wire test doubles而不是进程内模拟,这样您就可以测试您的应用程序黑盒,而不必使用静态模拟或重构代码。您可以通过 stub 或模拟依赖系统而不是专注于单个类或方法来实现这一点
  • 支持 HTTP over-the-wire stub /模拟的开源工具示例是 Wiremock
  • 支持 HTTP、gRPC 和 JMS 等多种协议(protocol)的商业工具示例是 Traffic Parrot
  • 你可以找到更多的工具 over-the-wire mocking and stubbing on Wikipedia

  • 关于java - PowerMock 有什么好的替代品吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34917532/

    相关文章:

    python - 如何在 Python 中进行基本的依赖注入(inject)(用于模拟/测试目的)

    java - ssl 证书错误 : unable to get local issuer certificate

    angular - 类型错误 : Cannot read properties of undefined (reading '<myvariable>' )

    java - 如何模拟调用集合方法并且该集合没有setter的方法?

    python - 当从另一个函数调用 mongodb 时如何模拟 mongodb?

    java - 在 Java 中为继承的类编写单元测试

    java - JTable 自动更新帮助

    JAVA 或我的 IDE 的限制或 SQL 问题?

    java - 如何将主从流主题与动态数据一起使用?

    c# - 如何在不使用模拟的情况下使用数据库对项目进行单元测试?