Kon*_*rus 13
http://blog.jayway.com/2009/05/17/mocking-static-methods-in-java-system-classes/
为了模拟实例方法,您可以简单地在子类中覆盖它.你不能用静态方法做到这一点,因为没有"静态多态".
Powermock可以做到这一点,因为它使用字节码,而其他流行的框架依赖于多态并使用CGLIB创建子类.
从链接:"基本上所有标准的模拟框架都使用CGLib来创建一个模拟对象,这意味着它们基于一个层次模型(CGLib创建一个类的子类,在运行时测试,这是实际的模拟对象)而不是PowerMock通过委托给MockGateway的字节码操作来使用的委托模型."