Mockito-入門

前言
    工作中測試框架使用的是Mockito,在網上看到很多人將其與EasyMock還有JMock進行比較,突出其簡易和方便的特點。我的確覺得Mockito很方便而且使用簡單,但是我沒有用過EasyMock和JMock,所以主要來跟大家分享下我在工作中對於Mockito的認識。

正題
    簡介
    Mockito是一個針對Java的mocking框架。相信大家都知道單元測試,所謂單元測試,就是需要突出其單元的特點即獨立性。比如我們的一個Service類,裏面肯定會調用一些Dao類。如果我們直接去測試Service的話就會去調用真實的Dao從而會連接數據庫,這麼一來只要dao失敗了,Service肯定也會跟着失敗,因爲他們是耦合的,這是一個集成測試而不是單元測試。
    
    Mockito這種框架的出現就是解決這個耦合問題,它可以Mock一個dao類,也就是我們不需要真正調用dao的方法,默認dao的方法都是成功的只需要根據我們的需求返回我們需要的值就Ok,這樣我們就可以把焦點放到Service類裏面的邏輯測試上面,從而實現了“單元”測試。

    初識Mockito
    開始之前可以先去官網http://mockito.org/ or https://code.google.com/p/mockito/downloads/list下載Mockito的jar包。
    
    引入Mockito
    我們在使用Mockito之前先引入Mockito的類,由於它的方法都是static的,所以我們可以直接引入static的方法,這樣在使用的時候就不用加上類名了,但是對於初用者我建議使用非static的,因爲對其方法還不是很熟,加上類名方便熟悉其個方法。
    import    org.mockito.Mockito.*; 或者import    static    org.mockito.Mockito.*;

    我們現根據Mockito的特點舉出幾個簡單的示例:
import static org.mockito.Mockito.*;
import java.util.List;
import org.junit.Test;

public class TestMockito {

	@Test
	public void testMockito1() {
		// mock creation
		List mockedList = mock(List.class);

		// using mock object
		when(mockedList.get( 0 )).thenReturn( "first" );  
		mockedList.add("one");
		mockedList.clear(); 
		
		// 下面會輸出“first”,因爲前面設定了期望值
		System.out.println(mockedList.get(0));
		
		// 驗證add方法是否在前面被調用了一次,且參數爲“one”。clear方法同樣。
		verify(mockedList).add("one");
		verify(mockedList).clear();
	}
}



小結
    本篇只是讓大家對Mockito有個初步的認識,後續我會介紹Mockito各個方法的使用以及我在工作中的應用。
發佈了244 篇原創文章 · 獲贊 8 · 訪問量 42萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章