默認的情況下,Android studio會幫助默認建立兩個不同的測試 folder - 單元測試 (就是 java 的單元測試用例仲锄,獨立于Android 不需要跑在 Android 設(shè)備上),另一個就是 Android 測試用例儒喊,主要是UI相關(guān)的币呵,這類 case 必須要運行在 android 設(shè)備上。
正常情況下余赢,默認建立的結(jié)構(gòu)如下:
這樣帶來的問題就是,我們在編寫測試用例的時候扛拨,很多時候不是獨立,而是有關(guān)聯(lián)的举塔,是需要在兩個測試用例中共享一些代碼求泰,比如說有個類叫做 TestUils.java拜秧,在兩種測試用例中都需要用到。
實際上,單元測試和 UI 測試本身之間是獨立志衍,比如如何在 test 文件下的文件在 androidTest 下都是不可見的。
幸運的是楼肪,gradle 的靈活實際上還是可以做到這件事情的。
創(chuàng)建一個共享的測試文件夾
怎么做呢春叫?首先是先在 app/src 下創(chuàng)建一個文件夾,這里就叫做testShared价匠,現(xiàn)在的目錄將變成下面的樣子:
接下來在這個 folder 下新建一個類 TestUtils.java呛每,這個就是我們想要共享的類:
然后核心的地方,是去修改 app/build.gradle 這個文件洋腮,按照下面的方式修改:
android.sourceSets {
test {
java.srcDirs += "$projectDir/src/testShared"
}
androidTest {
java.srcDirs += "$projectDir/src/testShared"
}
}
這樣我們就告訴了測試用例在編譯的時候同樣編譯 testShared這個folder手形,類似于追加一個其他目錄下的文件來編譯。
現(xiàn)在库糠,重新做 gradle sync 后,你就應(yīng)該可以在你的 UI 和 單元測試用例中調(diào)用這個共享的類了: