使用ActivityUnitTestCase和PreferenceManager来testingAndroid

我有一个Activity我是unit testing。 我想ActivitytestingActivity ,所以ActivityUnitTestCase非常适合我的目的。

我的ActivityonCreate方法使用一个存储在首选项中的值。 我想在我的testing案例中为此设置一个值。

问题是,我不知道如何提前设置PreferenceActivityUnitTestCase没有getContext()方法, getActivity()应返回context ,直到调用startActivity()为空。 这不是一个选项,因为调用startActivity会触发onCreate方法,这是首选项代码所在的地方。

关于如何获得我可以用来操纵我的unit testing的偏好的context任何想法?

Related of "使用ActivityUnitTestCase和PreferenceManager来testingAndroid"

您可以通过仪器获取上下文。

获取仪器的上下文(testing运行器):

 getInstrumentation().getContext() 

但是您可能需要仪器化应用程序的上下文:

 getInstrumentation().getTargetContext()