Android 測試代碼編寫小技巧 - UI 和 單元測試間共享代碼

默認的情況下,Android studio會幫助默認建立兩個不同的測試 folder - 單元測試 (就是 java 的單元測試用例,獨立于Android 不需要跑在 Android 設備上),另一個就是 Android 測試用例,主要是UI相關的,這類 case 必須要運行在 android 設備上。

正常情況下,默認建立的結構如下:

1.png

這樣帶來的問題就是,我們在編寫測試用例的時候,很多時候不是獨立,而是有關聯的,是需要在兩個測試用例中共享一些代碼,比如說有個類叫做 TestUils.java,在兩種測試用例中都需要用到。

實際上,單元測試和 UI 測試本身之間是獨立,比如如何在 test 文件下的文件在 androidTest 下都是不可見的。

幸運的是,gradle 的靈活實際上還是可以做到這件事情的。

創建一個共享的測試文件夾

怎么做呢?首先是先在 app/src 下創建一個文件夾,這里就叫做testShared,現在的目錄將變成下面的樣子:

2.png

接下來在這個 folder 下新建一個類 TestUtils.java,這個就是我們想要共享的類:

3.png

然后核心的地方,是去修改 app/build.gradle 這個文件,按照下面的方式修改:

android.sourceSets {  
    test {
        java.srcDirs += "$projectDir/src/testShared"
    }

    androidTest {
        java.srcDirs += "$projectDir/src/testShared"
    }
}

這樣我們就告訴了測試用例在編譯的時候同樣編譯 testShared這個folder,類似于追加一個其他目錄下的文件來編譯。

現在,重新做 gradle sync 后,你就應該可以在你的 UI 和 單元測試用例中調用這個共享的類了:


4.png
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容