2011-05-19 148 views
2

我是一個很長時間的Java開發人員,擁有多年的Java EE,Ant,Maven,單元測試,嘲笑等等。我目前使用gradle構建android應用程序,並正在研究單元測試他們。這讓我把頭髮撕掉了!試圖瞭解Android測試

我的閱讀表明要測試一個應用程序,我必須在測試目錄中創建另一個應用程序。但我不確定這個嵌入式應用程序如何看到主要的應用程序類。我認爲谷歌提出這個是因爲與不同的清單有關。我不知道爲什麼。

沒有做這個嵌入式應用系統,我已經能夠通過在APK中包含帶有主類的測試類來運行單元測試,將測試聲明添加到清單,部署它並運行測試運行器。但我不想編譯測試類與應用程序類,幷包括所有的依賴關係,所以這不是一個真正的選擇,我不確定更改對清單的影響,因爲我找不到有關效果的任何文檔。

這些都不是理解遵循建築的maven系統的gradle。另外請注意,Android方式似乎是嵌入式子項目(測試)依賴於主父項目,這與Gradle和Maven完全相反。

另一個選擇似乎是獨立的測試項目,以便它完全在應用程序項目之外。但是真的,我想用一個類似的約定來做maven,並且簡單地在單獨的目錄中進行測試,以及測試資源中的清單。

有沒有人設法在運行單元測試的模擬器上測試目錄結構等更多的maven?

回答

1

您是否必須在模擬器中運行單元測試?這不是太慢嗎?我一直在使用robolectric(http://pivotal.github.com/robolectric/),它可以創建類似於嘲笑的陰影物體。我使用progaurd(http://proguard.sourceforge.net/)去除發佈版本的測試。

+0

我很快看到了roboletric,但我更願意儘可能靠近設備運行測試。特別是我感興趣的測試是整合/功能/ BDD測試。單位我可以作爲純粹的JUnits運行。 – drekka 2011-05-19 23:57:48

2

您可以嘗試Robotium。它爲更好的測試用例提供了許多功能。你可以看看它here