easymock源代码学习笔记(1)

来源:互联网 发布:软件下载万一网 编辑:程序博客网 时间:2024/06/13 06:05

         easymock是一个java mock框架,它的基本实现原理是使用java本地的动态代理机制。因此只能针对接口来进行mock。其大致的类图如下:


EasyMock相当于门面类,主要功能就是找到相应的MockControl对象,并把调用相应的参数

MockControl中主要负责mock状态的切换,以及创建mock对象。

LastConrol保存当前线程中最后运行的mock对象、mock调用的方法以及常数。

ImocksControlStatemock状态的接口,有两个实现类RecordState、ReplayState。RecordState mock对象记录状态,记录mock调用方法的期望值;ReplayState mock对象的回放状态,在mock对象调用方法时返回期望值。

MocksBehavior包含UnorderedBehavior对象的集合,同时根据不同的状态返回不同的结果,如当属性nice为true的时候,没有找到对应的预期结果时返回空,而当属性nice为false的时候找不到对应的预期结果时抛异常。

UnorderedBehavior包含ExpectedInvocationAndResults对象(ExpectedInvocationAndResults类保存调用与结果对应关系)集合

ObjectMethodsFilter mock对象的代理类,对equalshashcode等方法,进行过滤不对这些方法记录

MockInvocationHandler当mock对象调用的不是equalshashcode等方法ObjectMethodsFilter便调用MockInvocationHandler来处理。MockInvocationHandler根据mock状态的不同来调用不同的处理逻辑。

原创粉丝点击