Android Robotium:如何在活动开始之前更新prefs?

Android Robotium:如何在活动开始之前更新prefs?,android,testing,sharedpreferences,robotium,instrumentation,Android,Testing,Sharedpreferences,Robotium,Instrumentation,我班上有几种测试方法。对于我的一个测试,我需要在测试开始之前更新应用程序首选项,即在测试下的活动开始之前。我使用Robotium库进行测试,因此我的测试类是从ActivityInstrumentationTestCase2扩展而来的。谢谢 要做到这一点,您需要一个上下文,只要您有可用的工具,就很容易获得上下文。这意味着您不能在测试类构造函数中执行,但可以在setup方法中执行 Context context = getInstrumentation().getTargetContext();

我班上有几种测试方法。对于我的一个测试,我需要在测试开始之前更新应用程序首选项,即在测试下的
活动开始之前。我使用Robotium库进行测试,因此我的测试类是从
ActivityInstrumentationTestCase2
扩展而来的。谢谢

要做到这一点,您需要一个上下文,只要您有可用的工具,就很容易获得上下文。这意味着您不能在测试类构造函数中执行,但可以在setup方法中执行

Context context = getInstrumentation().getTargetContext();
以上内容将为您提供被测试应用程序的上下文。通过此引用,您可以对共享首选项执行任何您可以在应用程序中正常执行的操作,例如:

final SharedPreferences.Editor preferencesEditor = PreferenceManager.getDefaultSharedPreferences(context).edit();
然后执行所需的任何编辑,然后按如下方式提交:

preferencesEditor.commit();

如果您只有一个测试,这是可行的,但是我有几个测试,并且我只需要更新一个测试的pref。我需要在这个测试开始之前更新它,也就是说,在测试下的活动开始之前。然后将代码放入你需要的测试中,或者在你的活动启动之前创建一个新的测试类。如果您的活动已启动,请完成并重新启动。我通常认为最好从头开始每个测试,因为测试共享状态是相当糟糕的做法。但是当调用测试方法时,活动已经在运行,不是吗?所以我需要的是更新prefs并可能重新启动它?只有在运行测试之前说了getActivity()时才会调用它,例如在setup方法中。将此设置代码放在它之前,您就可以了。