2013-01-09 48 views
2

我正在使用Android 4.0上的Google Maps,我想知道:可以與Google Maps API進行交互的Android單元測試框架。有一個存在嗎?

是否有可以與Google Maps API交互的測試框架(或任何其他)?與Android上的Google地圖進行交互/測試時有什麼可能?是不是可以找到地圖上的所有引腳,並執行點擊它們或可能確定縮放級別?

在這個網站上似乎有幾個問題處理類似的問題沒有答案。

我認識到「互動」是一個廣義的術語。無論這是一個建議,還是隻是告訴我一些事情是不可能的,我都在尋找任何幫助。

我一直在使用JUnit,但它本身似乎有限。就在今天我開始研究Robotium,因爲我需要做的大多數測試都是基於UI的。我是Robotium的新手,所以也許可以用這個,我還沒有發現它?

回答

1

如果有人想了解很多搜索後,我終於找到了一些可以測試Google地圖的東西。諸如縮放級別之類的東西,我相信tap pin(方法被稱爲tapMapMarkerItem())。我還沒有測試引腳水龍頭,但壽。 顯然,真棒Robotium本身不支持地圖測試。 Nicholas Albion非常棒,可以創建一個擴展,爲Android上的地圖提供測試支持。謝謝Nicholas!


所以在這裏,它是:
1.從robotium.org的Robotium罐子(我發現這是很有幫助 http://www.vogella.com/articles/AndroidTesting/article.html - 拉爾斯沃格爾)
2.下載從 https://github.com/nalbion/robotium-maps

3

擴展當我們的團隊創造了一個Android使用Google地圖的應用程序,我可以使用地圖片段的R.id創建測試。需要注意的是,我可以訪問應用程序的代碼,所以我知道要查找哪些變量。

創造這個測試之前,我想確保我所針對的正確R.id,讓我去到R檔,複製的價值,並把它放在

assertEquals(id.satellite,copiedRValue);

這返回真,然後圍繞打造多變的可變

initialID = solo.waitForFragmentById(id.satellite); //where id.satellite is defined in the R file, eventually would time out and throw error if fragment was not present 
    //save the map type, leave 
    //and do other awsome stuff 
    //before coming back to the map 
    finalID = solo.waitForFragmentById(id.satellite);//capture the map fragment that is now displayed, again would time out if this specific fragment was not visible 

    //assert that the fragments are equal 
    assertTrue(initialID.equals(finalID); 

測試,我與這個測試,並與其他Robotium測試的最大的問題是,我有點擊事件發生在菜單帶來有時Robotium會不t執行點擊,並且測試將在點擊失敗。

這是我第一次使用Robotium進行測試,因此可能有其他方法來操縱R.id值來創建更嚴格的測試。

相關問題