簡介
?
?
?更多信息請參考如下位置,
?原文鏈接: http://www.infoq.com/cn/news/2008/09/mockito-1.5
?官方網(wǎng)站: http://code.google.com/p/mockito/
?
入門
以下內(nèi)容均參考至 http://mockito.googlecode.com/svn/branches/1.6/javadoc/org/mockito/Mockito.html 。
- import ? static ?org.mockito.Mockito.*;??
模擬對象
?
- //?模擬LinkedList?的對象 ??
- LinkedList?mockedList?=?mock(LinkedList. class ); ??
- ??
- //?此時調(diào)用get方法,是會返回null,因為還沒有對方法調(diào)用的返回值做模擬? ??
- System.out.println(mockedList.get( 999 ));??
?
?
? 模擬方法調(diào)用的返回值
?
- //?模擬獲取第一個元素時,返回字符串first ??
- when(mockedList.get( 0 )).thenReturn( "first" ); ??
- ??
- //?此時打印輸出first ??
- System.out.println(mockedList.get( 0 ));??
模擬方法調(diào)用拋出異常
- //?模擬獲取第二個元素時,拋出RuntimeException ??
- when(mockedList.get( 1 )).thenThrow( new ?RuntimeException()); ??
- ??
- //?此時將會拋出RuntimeException ??
- System.out.println(mockedList.get( 1 ));??
- doThrow( new ?RuntimeException()).when(mockedList).clear();??
模擬方法調(diào)用的參數(shù)匹配
- //?anyInt()匹配任何int參數(shù),這意味著參數(shù)為任意值,其返回值均是element ??
- when(mockedList.get(anyInt())).thenReturn( "element" ); ??
- ??
- //?此時打印是element ??
- System.out.println(mockedList.get( 999 ));??
驗證方法調(diào)用次數(shù)
- //?調(diào)用add一次 ??
- mockedList.add( "once" ); ??
- ??
- //?下面兩個寫法驗證效果一樣,均驗證add方法是否被調(diào)用了一次 ??
- verify(mockedList).add( "once" ); ??
- verify(mockedList,?times( 1 )).add( "once" );??
?
收尾
更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號聯(lián)系: 360901061
您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對您有幫助就好】元
