我想找到一種方法讓我的儀器測試可以訪問測試包內生成的字符串資源。訪問儀器測試資源
更多細節:
我從ActivityInstrumentationTestCase2繼承一個Android測試案例。我使用Eclipse的新Android測試項目來首先創建測試。測試項目有資源(類似於常規Android項目的資源)。我試圖找到一種方法來編程訪問各種單獨測試中測試項目中的字符串資源。我曾嘗試:
String s = getInstrumentation().getContext().getString(R.string.blah);
和
String s = mActivity.getApplicationContext().getString(R.string.blah);
這兩種方法都拋出NotFoundException。我在我的strings.xml中定義了字符串「blah」。上面的代碼中的R是從我的測試包導入的,而不是被測試的應用程序的包。我可以通過後面的調用訪問應用程序包中定義的資源。
找出在我的測試中訪問XML定義的字符串資源的方法會很有用(因爲我想避免在代碼中輸入字符串)。我究竟做錯了什麼?
「getTargetContext()」替代「getContext()」做了訣竅:-) (也許海報可以標記答案爲「接受」?) – Christine 2014-08-30 14:21:41
在(支持)測試運行器的0.5版本中, getInstrumentation()方法被刪除。使用InstrumentationRegistry.getTargetContext()來獲取上下文。 – Metallica 2016-07-06 12:03:33