Quiero comenzar con un entorno de prueba consistente, así que necesito restablecer/borrar mis preferencias. Aquí está la configuración para la prueba que tengo hasta ahora. No informa ningún error y mis pruebas se aprueban, pero las preferencias no se borran.Android: ¿Cómo reinicio/borro las preferencias de la aplicación durante la prueba unitaria?
Estoy probando la actividad "MainMenu", pero temporalmente cambio a la actividad OptionScreen (que amplía la clase de actividad de preferencia de Android). Veo que la prueba abre correctamente la OptionScreen durante la ejecución.
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.
Código 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);
Gracias!
Muchas gracias. Guau, realmente debería leer la documentación más a fondo. No me di cuenta de que estaba construyendo un objeto editor; Esperaba que estuviera operando en las preferencias directamente. –
También esto funcionaría settings.edit(). Clear(). Commit(); – Federico