`

EasyMock与Mockito 使用

 
阅读更多
EasyMock常用方法
1. EasyMock类中的常用方法
 static T createMock(java.lang.Class<?> toMock)用于创建被模拟的对象
 static IMockControl createControl() 创建一个IMockControl对象,使用这个对象可以创建多个mock对象,并能使用它来控制这些mock对象。
 static replay(java.lang.Object... mocks) 主要测试对象将被创建,模拟真实运行环境下主要测试对象的行为。
 static reset(java.lang.Object... mocks)清空对mock对象的值。
 static verify(java.lang.Object... mocks) 验证mock对象的使用情况是否与预期的一致 。
 static IExpectionSetters expect(T value) 参数为期望的方法调用,返回一个IExpectionSetters 类型的对象,可以在这个对象上设置期望的返回值等。例如:EasyMock.expect(obj.f()).andReturn(2)即在obj对象上调用f方法并希望得到的返回值为2。
 static IExpectionSetters expectLastCall()返回对上一个方法调用的IExpectionSetters对象,这个方法通常是用于期望执行的方法的返回值类型为void。
2. IMockControl类中的常用方法(主要用于创建mock对象,并管理mock对象)
 createMock(java.lang.Class<?> toMock) 创建mock对象
 replay()将IMockControl对象创建的所有Mock对象切换至“播放”状态
 reset()清空IMockControl对象创建的所有Mock对象的期望
 verify()验证IMockControl对象创建的所有Mock对象
3. IExpectionSetters接口的主要方法(允许对调用的方法进行相关的设置)
 IExpectionSetters  andReturn(T value)设置期望的返回值
 IExpectionSetters  andThrow(java.lang.Throwable throw)设置期望抛出的异常
 IExpectionSetters  anyTimes() 期望方法被调用任意次
 IExpectionSetters  atLeastOnce() 期望方法至少被调用一次
 IExpectionSetters  once()期望方法被调用一次
 IExpectionSetters  times(int n)期望方法被调用n次
 IExpectionSetters  times(int min,int max)期望方法调用的次数在min和max之间
4.class mock 的限制
1) 不能mock类的 final方法。如果final方法被调用,则只能执行原有的正常代码。
2) 不能mock类的static 方法。
3) 同样如果private方法被调用,只能执行原有的正常代码。
4) 不能mock类的一些特殊方法: equals(), toString()和hashCode().原因是easymock的实现是为每个class mock对象提供了内建的以上三个方法。需要强调的是,对于基于interface的mock,这个限制也是同样存在的,即使以上三个方式是interface定义的一部分。
5) 在使用时需要避开这种场景,或者组合使用其他的mock 框架比如jmockit来mock private方法和final方法。

Mockito的常用方法
1. public static <T> T mock(java.lang.Class<T> classToMock) 创建mock对象
2. public static <T> T verify(T mock) 验证某方法是否被调用
eg: verify(mockedList).add("one");//验证mockedList对象的add方法是否在前面被调用了一次,且参数为“one”
3. public static <T> NewOngoingStubbing<T> when(T methodCall) 调用某方法时返回特定的值
eg:when(mockedList.get(0)).thenReturn(“first”) //调用mockedList.get(0)时返回”first”
4. public static <T> T verify(T mock, VerificationMode mode) 验证方法被调用了特定次数/至少x次/最多x次/从未被调用
eg: verify(mockedList, times(2)).add("twice");//是否add(“twice”)被调用了两次。
5. public static Stubber doThrow(java.lang.Throwable toBeThrown)抛出异常。
eg:doThrow(new RuntimeException()).when(mockedList).clear();//调用方法时抛出异常。



另参考:http://blog.csdn.net/onlyqi/article/details/6396646
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics