2016-09-19 64 views
0

我工作的應用程序由定位服務驅動。用手機連接筆記本電腦並不總是實用(而且越來越複雜)。Android:定位服務的自動功能測試方法

我將如何爲我的應用程序編寫自動功能測試(Google搜索顯示UI相關測試)?我明白,我需要價值觀注入到下面的回調(因爲我的應用程序是由位置管理器驅動)

@Override 
public void onLocationChanged(Location location) {} 

在Java應用程序,我想創建一個有我的應用程序的實例並調用方法的單元。但是, 一)我將如何做到這一點的Android應用程序(在沒有主要方法,一切都通過的onCreate驅動()) 二)它是如何發生變化,如果上述功能的是Android的一部分服務

回答

0

在哪裏我們工作,我們使用PowerMockito。我不是一個超級粉絲,但我完全理解你對單元測試的失望。這裏有一個體面的教程的主題:http://www.johnmullins.co/blog/2015/02/15/beginners-guide-to-using-mockito-and-powermockito-to-unit-test-java/

基本上,PowerMockito可以讓你做的是寫一堆Powermock單元測試。這些測試會讓你嘲笑響應,並讓你測試你的代碼。你甚至可以手動調用「onLocationChanged」。

我不喜歡PowerMockito的原因是,這意味着你必須像Android操作系統一樣行事。您可以製作虛擬位置響應並測試以確定您的代碼是否正確,但在現場條件下測試代碼要困難得多。如果某個特定手機的返回地點存在問題,那麼PowerMock永遠不會幫助您抓住它。