• <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>
  • Android單元測試研究與實踐(19)

    發表于:2017-02-21來源:meituan作者:潘銘煒 黃超點擊數: 標簽:單元測試Android
    } }//樣例來源于Robolectric官網 上述實例中,@Implements是聲明Shadow的對象,@RealObject是獲取一個Android 對象,constructor則是該Shadow的構造函數,Shadow還可以修改
  •  
  •  
  • }//樣例來源于Robolectric官網 
  • 上述實例中,@Implements是聲明Shadow的對象,@RealObject是獲取一個Android 對象,constructor則是該Shadow的構造函數,Shadow還可以修改一些函數的功能,只需要在重載該函數的時候添加@Implementation,這種方式可以有效擴展Robolectric的功能。

    Shadow是通過對真實的Android對象進行函數重載、初始化等方式對Android對象進行擴展,Shadow出來的對象的功能接近Android對象,可以看成是對Android對象一種修復。自定義的Shadow需要在config中聲明,聲明寫法是@Config(shadows=ShadowPoint.class)。

    Mock寫法介紹

    對于一些依賴關系復雜的測試對象,可以采用Mock框架解除依賴,常用的有Mockito。例如Mock一個List類型的對象實例,可以采用如下方式:

    
    
    1. List list = mock(List.class); //mock得到一個對象,也可以用@mock注入一個對象 

    所得到的list對象實例便是List類型的實例,如果不采用mock,List其實只是個接口,我們需要構造或者借助ArrayList才能進行實例化。與Shadow不同,Mock構造的是一個虛擬的對象,用于解耦真實對象所需要的依賴。Mock得到的對象僅僅是具備測試對象的類型,并不是真實的對象,也就是并沒有執行過真實對象的邏輯。

    原文轉自:http://tech.meituan.com/Android_unit_test.html

    ...
    老湿亚洲永久精品ww47香蕉图片_日韩欧美中文字幕北美法律_国产AV永久无码天堂影院_久久婷婷综合色丁香五月

  • <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>