日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時間:8:30-17:00
你可能遇到了下面的問題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
學習Mockito框架

Mockito是一個流行的Mocking框架。它使用起來簡單,學習成本很低,而且具有非常簡潔的API,測試代碼的可讀性很高。因此它十分受歡迎,用戶群越來越多,很多的開源的軟件也選擇了Mockito。要想了解更多有關(guān)Mockito的信息,請訪問它的官方網(wǎng)站:http://mockito.org/

創(chuàng)新互聯(lián)公司-專業(yè)網(wǎng)站定制、快速模板網(wǎng)站建設(shè)、高性價比東寧網(wǎng)站開發(fā)、企業(yè)建站全套包干低至880元,成熟完善的模板庫,直接使用。一站式東寧網(wǎng)站制作公司更省心,省錢,快速模板網(wǎng)站建設(shè)找我們,業(yè)務(wù)覆蓋東寧地區(qū)。費用合理售后完善,十載實體公司更值得信賴。

在開始使用Mockito之前,先簡單的了解一下Stub和Mock的區(qū)別。

Stub對象用來提供測試時所需要的測試數(shù)據(jù),可以對各種交互設(shè)置相應(yīng)的回應(yīng)。例如我們可以設(shè)置方法調(diào)用的返回值等等。Mockito中 when(…).thenReturn(…) 這樣的語法便是設(shè)置方法調(diào)用的返回值。另外也可以設(shè)置方法在何時調(diào)用會拋異常等。Mock對象用來驗證測試中所依賴對象間的交互是否能夠達到預(yù)期。 Mockito中用 verify(…).methodXxx(…) 語法來驗證 methodXxx方法是否按照預(yù)期進行了調(diào)用。有關(guān)stub和mock的詳細論述見,Martin Fowler文章《Mocks Aren't Stub》http://martinfowler.com/articles/mocksArentStubs.html。在Mocking框架中所謂的mock對象實際上是作為上述的stub和mock對象同時使用的。因為它既可以設(shè)置方法調(diào)用返回值,又可以驗證方法的調(diào)用。

Mockito的獲取

Jar包的獲取

可以訪問下面的鏈接來下載最新的Jar包,筆者使用的當前最新版為:1.8.5 http://code.google.com/p/mockito/downloads/list

Maven

如果項目是通過Maven管理的,需要在項目的Pom.xml中增加如下的依賴:

Java代碼

 
 
 
  1.      
  2.      
  3. org.mockito     
  4. mockito-all     
  5. 1.8 . 5      
  6. test     
  7.      
  8.     

Java代碼

 
 
 
  1.      
  2.      
  3. org.mockito     
  4. mockito-all     
  5. 1.8.5     
  6. test     
  7.      
  8.   

Mocktio包的引入

在程序中可以import org.mockito.Mockito;然后調(diào)用它的static方法,或者import static org.mockito.Mockito.*;個人傾向于后者,因為這樣可以更方便些。

一個簡單的例子

Java代碼

 
 
 
  1. import   static  org.junit.Assert.*;     
  2. import   static  org.mockito.Mockito.*;     
  3. import  java.util.Iterator;     
  4. import  org.junit.Test;     
  5.      
  6. /**     
  7.  *      
  8.  * @author Brian Zhao     
  9.  */      
  10. public   class  SimpleTest {     
  11.          
  12.     @Test      
  13.     public   void  simpleTest(){     
  14.         //arrange      
  15.         Iterator i=mock(Iterator.class );     
  16.         when(i.next()).thenReturn("Hello" ).thenReturn( "World" );     
  17.         //act      
  18.         String result=i.next()+" " +i.next();     
  19.         //verify      
  20. verify(i, times(2 )).next();     
  21.         //assert      
  22.         assertEquals("Hello World" , result);     
  23.     }     
  24. }     

Java代碼

 
 
 
  1. import static org.junit.Assert.*;     
  2. import static org.mockito.Mockito.*;     
  3. import java.util.Iterator;     
  4. import org.junit.Test;     
  5.     
  6. /**    
  7.  *     
  8.  * @author Brian Zhao    
  9.  */    
  10. public class SimpleTest {     
  11.          
  12.     @Test    
  13.     public void simpleTest(){     
  14.         //arrange     
  15.         Iterator i=mock(Iterator.class);     
  16.         when(i.next()).thenReturn("Hello").thenReturn("World");     
  17.         //act     
  18.         String result=i.next()+" "+i.next();     
  19.         //verify     
  20. verify(i, times(2)).next();     
  21.         //assert     
  22.         assertEquals("Hello World", result);     
  23.     }     
  24. }    

在上面的例子中包含了Mockito的基本功能:

創(chuàng)建Mock對象

創(chuàng)建Mock對象的語法為,mock(class or interface)。例子中創(chuàng)建了Iterator接口的mock對象。

設(shè)置方法調(diào)用的預(yù)期返回

通過when(mock.someMethod()).thenReturn(value) 來設(shè)定mock對象某個方法調(diào)用時的返回值。例子中我們對Iterator接口的next()方法調(diào)用進行了預(yù)期設(shè)定,當調(diào)用next()方法時會返回”Hello”,由于連續(xù)設(shè)定了返回值,因此當?shù)诙握{(diào)用時將返回”World”。

驗證方法調(diào)用

接下來對mock對象的next()方法進行了一系列實際的調(diào)用。mock對象一旦建立便會自動記錄自己的交互行為,所以我們可以有選擇的對它的交互行為進行驗證。在Mockito中驗證mock對象交互行為的方法是verify(mock).someMethod(…)。于是用此方法驗證了 next()方法調(diào)用,因為調(diào)用了兩次,所以在verify中我們指定了times參數(shù)(times的具體應(yīng)用在后面會繼續(xù)介紹)。最后assert返回值是否和預(yù)期一樣。

原文鏈接:http://javasee.iteye.com/blog/1000868

【編輯推薦】

    Struts VS Spring兩種MVC框架比較

    Spring MVC框架的高級配置

    Spring MVC框架的高級配置(上)

    Spring MVC框架的高級配置(下)

    設(shè)計REST風格的Java MVC框架:WebWind


分享文章:學習Mockito框架
標題URL:http://www.5511xx.com/article/dheeips.html