測試Android庫的正確流程是什麼?我的圖書館嚴重依賴android.location
和Google Play服務融合位置提供程序,因此我希望能夠測試位置更改。使用Gradle測試Android庫
在src
下添加instrumentTest
文件夾後,我該怎麼辦? Gradle用戶指南simply says可以像常規應用程序一樣測試庫,但由於我沒有Activity
如何實例化我的庫類?
測試Android庫的正確流程是什麼?我的圖書館嚴重依賴android.location
和Google Play服務融合位置提供程序,因此我希望能夠測試位置更改。使用Gradle測試Android庫
在src
下添加instrumentTest
文件夾後,我該怎麼辦? Gradle用戶指南simply says可以像常規應用程序一樣測試庫,但由於我沒有Activity
如何實例化我的庫類?
您應該使用InstrumentationTestCase
(和子類,根據您的需要)。
您可以通過在測試用例中調用getInstrumentation().getContext()
來獲得Context
。
使用Gradle時,只需將測試類放置在/src/instrumentTest
中,然後通過創建Android測試運行配置來運行它們。您還可以從命令行運行測試:./gradlew check
(或其中一個變體,如connectedCheck
或connectedInstrumentTest
)。
最後,你應該嘲笑你所有的外部依賴。你可能想看一些像Mockito這樣的模擬框架,或者只是自己做些東西。
你爲什麼不創建一個簡單的應用程序來使用你的庫?您可以使用Genymotion測試不同的位置(包括高度):http://www.genymotion.com/
這是一個正確的方向的好點。雖然,我在問題的第二部分有問題,那就是:如何測試模擬位置?我可以使用[setMockMode](http://developer.android.com/reference/android/location/LocationManager.html#addTestProvider(java.lang.String,boolean,boolean,boolean,boolean,boolean,boolean,boolean ,int,int))在具有ACCESS_MOCK_LOCATION權限的* application *中,但將其設置爲庫清單或測試清單會導致出現'SecurityException',因爲它看起來像沒有處理權限一樣。 – frapontillo