我认为原因可能是模拟对象库通常通过在运行时动态创建类(使用cglib)来创建模拟。这意味着他们要么在运行时实现一个接口(如果我没有记错的话,这就是EasyMock所做的事情),要么从类中继承要模拟的东西(如果我没记错的话,这就是Mockito所做的事情)。这两种方法都不适用于静态成员,因为你不能使用继承来覆盖它们。
模拟静态变量的唯一方法是在运行时修改类的字节码,我想这比继承要复杂得多。
这就是我的猜测,这是值得的…

我认为原因可能是模拟对象库通常通过在运行时动态创建类(使用cglib)来创建模拟。这意味着他们要么在运行时实现一个接口(如果我没有记错的话,这就是EasyMock所做的事情),要么从类中继承要模拟的东西(如果我没记错的话,这就是Mockito所做的事情)。这两种方法都不适用于静态成员,因为你不能使用继承来覆盖它们。
模拟静态变量的唯一方法是在运行时修改类的字节码,我想这比继承要复杂得多。
这就是我的猜测,这是值得的…