2011-11-09 126 views
3

在我的Android應用程序中,我需要獲取當前國家的國家代碼。所以我使用了android.telephony.TelephonyManager中的getNetworkCountryIso()方法。現在我只想用假操作員來測試它。我想假裝我在我們這樣getNetworkCountryIso()將返回「美國」作爲我的國家。我怎樣才能做到這一點 ?有沒有任何應用程序僞造假像GPS僞造的運營商。如何僞造NetworkCountryIso?

在此先感謝!

+0

您正在使用您的單元測試框架的嘲諷?有可能嘲笑TelephonyManager並讓模擬的TelephonyManager返回你喜歡的任何東西。 – brianestey

+0

我沒有使用任何模擬框架。我想知道是否有。 – Chrishan

回答

2

我需要嘲笑TelephonyManager,ConnectivityManager和其他的東西。我們無法爲Android設置模擬框架。所以我們在TelephonyManager和我們的代碼之間創建了一個圖層。此層(類)具有與TelephonyManager相同的方法,並將所有調用委託給實際的TelephonyManager。但爲了測試,我們可以用模擬層替代這個「層」,產生我們想要的結果。它增加了一些不必要的代碼,但提高了可測試性!