使用ActivityUnitTestCase和PreferenceManager来testingAndroid

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

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

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

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

  • 为什么我的JSONObject相关unit testing失败?
  • 尝试mockito模拟任何类生成ExceptionInInitializerError
  • Android Studio和Gradleunit testing?
  • Android立即创buildPair元素为空
  • Mockito模拟在Lollipop或更高版本中运行实际的Android代码
  • unit testing室和LiveData
  • Android上的unit testing期间的区域设置
  • 为什么AndroidTestCase.getContext()。getApplicationContext()返回null?
  • 您可以通过仪器获取上下文。

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

     getInstrumentation().getContext() 

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

     getInstrumentation().getTargetContext()