Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
接下来的问题是:我需要测试私有类的方法methodTest()。methodTest ( )从外部库调用静态方法staticExternal() 。如果我使用 JMock 和 EasyMock,但包含staticExternal()的类没有接口 ,如何替换mockLocal()上的staticExternal() ?
PS PowerMock 无法使用。
据我所知,你不能。基本上,该代码很难测试。您应该考虑提取依赖项,其中该依赖项的“正常”实现调用静态方法。
从根本上说,静态方法调用很难精确替换,因为它们是静态的。为了拦截静态方法调用,PowerMock 之类的工具必须适应 Java 的核心(替换类加载器等)。在我看来,通常最好重构你的代码,这样它就可以在没有那种东西的情况下进行测试。