Mockito使用總結

Mockito簡單使用java

對於某些不容易構造,或者不容易獲取比較複雜的對象,用一個虛擬的對象(Mock 對象)來建立以便測試的測試方法。spring

 

Mock-Object:ide

mock一個bug.class的id單元測試

Bug s=mock(Bug.class); 
when(s.getId()).thenReturn("dddddddd");
System.out.println(s.getId());   //print ddddddd

 

Mock-List:測試

mock一個list裏面的元素this

 

Mockito註解使用:spa

爲須要mock的對象添加註解,在測試代碼執行的狀況下觸發該註解的生效,把mock覆蓋對象注入,以達到能夠在正式的代碼加入mock,只要控制好生效的機制3d

@Mock //mock 註解
@Autowired  //spring 註解
private BugDaoI bugDao;

    @Override
    public Map<String, List<Object>> clo() {        
        MockitoAnnotations.initMocks(this); //運行到這裏註解生效
        List<Object[]> mockdata=new LinkedList<Object[]>();
        mockdata.add(new Object[]{"8645","test1"});
        when(bugDao.findBySql("select distinct name from tbug")).thenReturn(mockdata);//開始mock

 

 

經過mock集合jacoco提升測試代碼覆蓋率:code

 測試代碼:能經過變化參數(等價類,邊界值)來觀察總體覆蓋率的提高,下面是mock後的覆蓋率提高示例對象

 

Jacoco統計:能更清晰的把握你寫的白盒測試代碼的覆蓋狀況,收益狀況

 

總結:

單元測試的mock比httpmock要簡單不少
經過註解對mock的時機進行控制,十分靈活

 

動態添加@Mock註解:

動態添加註解
<dependency>
    <groupId>javassist</groupId>
    <artifactId>javassist</artifactId>
    <version>3.12.0.GA</version>
</dependency>

 

相關文章
相關標籤/搜索