定義
mock是在測試過程中,對於一些不容易構造/獲取的對象,創建一個mock對象來模擬對象的行爲。
意義
傳統的單元測試需要保證程序的每一個部分都是就緒的,完整的和可用的。直到程序的各個部分被完全開發完才能進入測試階段。mock提供了隔離測試的概念,假設A依賴B,只需要將B進行mock,返回期望的結果,就可以讓A進行一次完整的單元測試。
三個步驟
1. mock一個假對象;
2. 定義假對象的行爲;
3. 調用假對象的方法,執行定義好的假行爲
4. 驗證結果是否正確
maven引入:
<dependency>
<groupId>org.mockito</groupId>
<artifactId>mockito-all</artifactId>
<version>1.10.19</version>
<scope>test</scope>
</dependency>
實踐
package com.example.demo.mock;
import org.junit.Test;
import org.mockito.Mockito;
import java.util.ArrayList;
import java.util.List;
/**
* @ClassName MockTest
* @Author zhaoguang
* @Date 2019/12/14
* @Version 1.0
*/
public class MockTest {
@Test
public void test(){
List list = Mockito.mock(ArrayList.class); //mock一個假對象
Mockito.when(list.toString()).thenReturn(new ArrayList<String>().toString()); //定義行爲
Assert。assertTrue("[]".equals(list.toString())); //執行並驗證結果
}
}
詳細使用內容參考:mockit基礎使用