我在Android上執行單元測試時遇到了相當多的麻煩。作爲一個簡單的測試,我一直試圖以匹配字符串資源中檢索到的字符串:Android單元測試和接口
String myString = myActivity.getResources().getString(R.string.testString));
然而,當單元測試此總是導致一個空指針異常。這包括robolectric以及隨Android sdk一起提供的Junit實現。
一種可能的解決方案是以類似於數據訪問對象的方式來獲取資源。也就是說,創建一個接口來訪問字符串資源。這將允許我模擬訪問字符串資源。同樣,我可以將Activity的非android依賴行爲分離爲一個單獨的pojo類。這將允許我使用標準的Java測試工具來運行單元測試。實際上,我可能會將任何與Android基礎架構相關的活動委託給接口。
這似乎是很多跳過箍環來進行單元測試。這值得麼?有沒有更可行的方法?