我一直在試圖弄清楚如何在我的Android應用程序中包含標準的JUnit 3.x(甚至JUnit4.x)測試。我想通過Android單元測試工具使用JUnit,因爲它速度更快,並且可以直接在我的IDE中運行(Android JUnit工具需要部署到設備或仿真器的第一個地方)。我也想用JUnit來強加適當的SoC(Separation of Concerns)。最初,我設置了多個模塊來支持這個,主Android模塊和核心庫模塊,其中主模塊具有所有Android細節,而核心模塊具有普通舊Java對象(POJO)和JUnit優點。Android項目中的常規JUnit
最近我開始研究一個Android項目,在那裏我開發了一個庫來處理一些低級別的android特定工作,並將它作爲高級操作暴露給主模塊。問題是我需要在庫模塊中使用JUnit,但我不想再打開另一個模塊來這樣做。在理想的世界中,我將擁有:
主要模塊:包括用於在活動,片段等之間導航的所有高級UI和控制器邏輯。取決於MyLib。
MyLib:包含高級接口,封裝低級邏輯來處理諸如android特定網絡,持久性,加速度計讀取等事情。許多POJO涉及一些低級邏輯。還包括一個示例或演示應用程序來直接鍛鍊這些接口。包括在POJO上運行JUnit的能力。
我活在一個夢想中,還是有一種方法可以使用當前的開發工具智能地設置它?我主要使用IntelliJ Idea,但也可以使用Eclipse特定的解決方案。
我完全理解和欣賞這個限制,這實際上是一個功能。此練習的要點是確保類之間的適當內聚,並將Android特定代碼限制在合適的位置。儘管如此,我仍然擔心,我真正在尋找的是對整體優選解決方案的破解。 – Cliff
我有類似的經驗,模擬器測試很慢。使用1.2GHz或更高的處理器電話會更好。任何較小的測試都會很痛苦。 – Siddharth
我試圖避免使用設備進行測試,真實或模擬。對於大多數邏輯來說這是不必要的。我可以通過自定義螞蟻黑客來解決這個問題,我不願意這樣做,我寧願弄清楚如何在IDE中設置這樣的環境。 – Cliff