[转]Mockito学习一
[转]Mockito学习1import?static?org.junit.Assert.*??import?static?org.mockito.Mockito.*??import?jav
[转]Mockito学习1
![[转]Mockito学习一](//img.reader8.net/uploadfile/jiaocheng/20140140/2717/2014012720172222727.gif)
![[转]Mockito学习一](//img.reader8.net/uploadfile/jiaocheng/20140140/2717/2014012720172222727.gif)
import?static?org.junit.Assert.*;??import?static?org.mockito.Mockito.*;??import?java.util.Iterator;??import?org.junit.Test;????/**??*???*?@author?Brian?Zhao??*/??public?class?SimpleTest?{????????????@Test??????public?void?simpleTest(){??????????//arrange??????????Iterator?i=mock(Iterator.class);??????????when(i.next()).thenReturn("Hello").thenReturn("World");??????????//act??????????String?result=i.next()+"?"+i.next();??????????//verify??verify(i,?times(2)).next();??????????//assert??????????assertEquals("Hello?World",?result);??????}??}??
在上面的例子中包含了Mockito的基本功能:
创建Mock对象
创建Mock对象的语法为,mock(class or interface)。例子中创建了Iterator接口的mock对象。
设置方法调用的预期返回
通过when(mock.someMethod()).thenReturn(value) 来设定mock对象某个方法调用时的返回值。例子中我们对Iterator接口的next()方法调用进行了预期设定,当调用next()方法时会返回”Hello”,由于连续设定了返回值,因此当第二次调用时将返回”World”。
验证方法调用
接下来对mock对象的next()方法进行了一系列实际的调用。mock对象一旦建立便会自动记录自己的交互行为,所以我们可以有选择的对它的交互行为进行验证。在Mockito中验证mock对象交互行为的方法是verify(mock).someMethod(…)。于是用此方法验证了next()方法调用,因为调用了两次,所以在verify中我们指定了times参数(times的具体应用在后面会继续介绍)。最后assert返回值是否和预期一样。
?
原文链接:http://javasee.iteye.com/blog/1000868