android單元測試遇到問題總結

ShanLiang_Build發表於2018-05-31

最近主要工作就是單元測試的編寫,剛接手不久,遇到的問題記錄一下。

一、使用mockito包中的mock方法時,在initMocks時會報錯

解決方案:在stackoverflow上終於找到解答。目前來看似乎mockito仍然存在一些問題,庫依賴mockito-core
使用1.10.19版本的包可以正常使用,但是再往上版本的包會報一個抽象方法實現的錯誤,cleanstacktrace相關。


二、如何獲取一個上下文

有些類或自定義view初始化時需要傳入一個引數,就是上下文,如果傳空,會影響到我們後續的一些使用,所以如何獲取一個上下文就顯得尤為重要。筆者將親測可行的方法記錄下來。

1 測試類繼承InstrumentationTestCase之後,使用new MockContext()方法即可獲取一個上下文例項。

2 使用mock註解,註解一個context變數,之後初始化時呼叫Mockito.Annotations.initMocks(this)方法即可。方法中的引數傳this就行。

更新20180604

使用mock方法制造的context,無法應用於自定義控制元件等上下文引數使用。這個context不具備真機上context的功能。如果想要自己例項化一個context或者activity用於模擬實際情況,可能還需要在真機上執行AndroidJUint才行。

相關文章