接下来是问题:我需要测试私有类的方法 methodTest()。 methodTest()从外部库调用静态方法 staticExternal() 。 如果我使用JMock和EasyMock,如何替换 mockLocal()上的 staticExternal() ,但是包含 <的类em> staticExternal() 还没有接口?
P.S。无法使用PowerMock。
答案 0 :(得分:3)
据我所知,你不能。基本上代码很难测试。您应该考虑提取依赖项,其中该依赖项的“正常”实现调用静态方法。
从根本上说,静态方法调用很难准确替换,因为它们是静态的。像PowerMock这样的工具必须利用Java的内核(替换类加载器等)来拦截静态方法调用。在我看来,通常更好地重构你的代码,这样它就可以在没有那种东西的情况下进行测试。