Java Mock 框架Mockito背后的原理

遇到的问题

MockedStatic<EnvUtil> envUtilMockedStatic;
envUtilMockedStatic = Mockito.mockStatic(EnvUtil.class);
EnvUtil.setEnvironment(new StandardEnvironment());

mock了类EnvUtil之后,setEnvironment方法的参数始终为null。明明传的是一个对象。

答案

image

“这个操作会创建一个 EnvUtil 类的子类,并且所有对 EnvUtil 的静态方法的调用都会被转发到这个子类” 这个背后的原理:
image

继续深究

1、经过验证,EnvUtil的类加载器还是应用类加载器,并不是自定义加载器。
2、还是不理解为啥参数是null,执行过程是怎样

posted @ 2024-09-25 10:57  耗子哥信徒  阅读(13)  评论(0编辑  收藏  举报