2013-02-08 26 views
7

我有一個Activity我的單元測試。我想單獨測試Activity,所以ActivityUnitTestCase非常適合我的目的。單元測試的Android使用ActivityUnitTestCase和PreferenceManager

ActivityonCreate方法使用存儲在首選項的值。我想在我的測試案例中爲此設置一個值。

的問題是,我無法弄清楚如何設置Preference的時間提前。沒有一個getContext()方法ActivityUnitTestCasegetActivity(),它應該返回一個context,爲空,直到我打電話startActivity()。這不是一個選項,因爲調用startActivity將觸發onCreate方法,而這正是偏好代碼所在的地方。

我如何能得到一個context,我可以用它來處理我的單元測試的喜好有什麼想法?

回答

9

你可以通過儀器的上下文。

要獲得儀表(測試運行器)的語境:

getInstrumentation().getContext() 

但你可能需要樁的應用上下文:

getInstrumentation().getTargetContext() 
+0

getTargetContext()工作。謝謝! – jacobhyphenated 2013-02-08 21:52:56

+1

嗨,但在我的情況'getInstrumentation()'返回** null **。我正在擴展'ActivityUnitTestCase'。任何想法? – 2015-06-04 12:14:28

相關問題