mock測試究竟是什麼?

 

    ​    ​常常聽人說mock測試,究竟什麼是mock測試呢?mock測試能解決什麼問題?mock測試要如何作呢?今天爲你們作簡單介紹,以後會有詳細的mock測試,感謝你們對測試夢工廠的持續關注。java

 

概念工具

    ​    ​mock測試就是在測試過程中,對於某些不容易構造或者不容易獲取的對象,用一個虛擬的對象來建立以便測試的測試方法。測試

 

 

MockObject

    ​    ​使用Mock Object進行測試,主要是用來模擬那些在應用中不容易構造(如HttpServletRequest必須在Servlet容器中才能構造出來)或者比較複雜的對象(如JDBC中的ResultSet對象)從而使測試順利進行的工具。this

    ​    ​目前,在Java陣營中主要的Mock測試工具備JMock,MockCreator,Mockrunner,EasyMock,MockMaker等,在微軟的.Net陣營中主要是Nmock,.NetMock等。spa

 

mock對象實例code

編輯htm

    ​    ​一個鬧鐘根據時間來進行提醒服務,若是過了下午5點鐘就播放音頻文件提醒你們下班了,若是咱們要利用真實的對象來測試的話就只能苦苦等到下午五點,而後把耳朵放在音箱旁,咱們應該利用mock對象[1]  來進行測試,這樣咱們就能夠模擬控制時間了,而不用苦苦等待時鐘轉到下午5點鐘了。下面是代碼:對象

1
2
3
4
5
6
7
8
9
public  abstract  class  Environmental{
     boolean  playedWav= false ;
     public  abstract   long  getTime();
     public  abstract   void   playWavFile(String fileName);
     public  abstract   boolean   wavWasPlayed();
     public  abstract   void   resetWav();
}
 
真實的實現代碼:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
public  class  SystemEnvironment  extends  Environmental{
     public  long  getTime(){
         return  System.currentTimeMillis();
     }
     public  void  playWavFile(String  fileName){
         playedWav= true ;
     }
     public  boolean   wavWasPlayed(){
         return  playedWav;
     }
     public  void   resetWav(){
         playedWav= false ;
     }
}
 
下面是mock對象:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
public  class  MockSystemEnvironment  extends  Environmental{
     private  long  currentTime;
     public  long  getTime(){
         return  currentTime;
     }
     public  voidsetTime( long   currentTime){
         this .currentTime=currentTime;
     }
     public  void  playWavFile(String  fileName){
         playedWav= true ;
     }
     public  boolean  wavWasPlayed(){
         return  playedWav;
     }
     public  void   resetWav(){
         playedWav= false ;
     }
}

 

 


        長按二維碼識別關注,您的支持是咱們最大的動力。       ci

        公衆號:測試夢工廠get

        QQ一羣:300897805

  

相關文章
相關標籤/搜索