Chcę rozpocząć od spójnego środowiska testowego, więc muszę zresetować/wyczyścić moje preferencje. Oto SetUp do testu, który do tej pory miałem. Nie zgłasza żadnych błędów, a moje testy mijają, ale preferencje nie są usuwane.Android: Jak zresetować/wyczyścić preferencje aplikacji podczas testowania urządzenia?
Testuję działanie "MainMenu", ale tymczasowo przełączam się na działanie OptionScreen (które rozszerza klasę PreferenceActivity Androida.) Widzę, że test poprawnie otwiera OptionScreen podczas biegu.
public class MyTest extends ActivityInstrumentationTestCase2<MainMenu> {
...
@Override
protected void setUp() throws Exception {
super.setUp();
Instrumentation instrumentation = getInstrumentation();
Instrumentation.ActivityMonitor monitor = instrumentation.addMonitor(OptionScreen.class.getName(), null, false);
StartNewActivity(); // See next paragraph for what this does, probably mostly irrelevant.
activity = getActivity();
SharedPreferences settings = PreferenceManager.getDefaultSharedPreferences(activity);
settings.edit().clear();
settings.edit().commit(); // I am pretty sure this is not necessary but not harmful either.
Kod StartNewActivity:
Intent intent = new Intent(Intent.ACTION_MAIN);
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
intent.setClassName(instrumentation.getTargetContext(),
OptionScreen.class.getName());
instrumentation.startActivitySync(intent);
Activity currentActivity = getInstrumentation()
.waitForMonitorWithTimeout(monitor, 5);
assertTrue(currentActivity != null);
Dzięki!
Dzięki tak dużo. Wow, naprawdę powinienem przeczytać dokładniej dokumentację. Nie zdawałem sobie sprawy, że konstruuję obiekt edytora; Spodziewałem się, że działam bezpośrednio na preferencjach. –
Również to działałoby settings.edit(). Clear(). Commit(); – Federico