Android: ¿Cómo restablecer / eliminar las preferencias de la aplicación durante las pruebas de unidad?

Quiero comenzar con un entorno de prueba consistente, así que necesito restablecer / borrar mis preferencias. Aquí está el SetUp para la prueba que tengo hasta ahora. No está reportando errores, y mis pruebas pasan, pero las preferencias no están siendo borradas.

Estoy probando la actividad "MainMenu", pero temporalmente cambio a la actividad de OptionScreen (que extiende la clase PreferenceActivity 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. 

StartNewActivity Código:

  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!

El problema es que no está guardando el editor original de la llamada edit (), y se obtiene una nueva instancia del editor y la llamada commit () en que sin haber realizado ningún cambio en el mismo. Prueba esto:

 Editor editor = settings.edit(); editor.clear(); editor.commit(); 

La respuesta está aquí, unidad de prueba de Android: borrar prefs antes de la actividad de prueba

llamada,

 this.getInstrumentation().getTargetContext() 
  • Configuración de eclipse para quejarse de cadenas codificadas duras para las preferencias de Android xml
  • Extras en el intento de correo electrónico - Preferencias XML
  • Anulación del diseño utilizado para una preferencia en una preferenciaActividad / preferencia Pantalla utilizando temas
  • Uso de la preferencia de lista en Android
  • DefaultValue de archivo de preferencia de xml no está almacenado - ¿por qué?
  • Instanciar una clase interna (Preferencia) en un archivo xml
  • Preferencias de Android, cómo establecer la dependencia de las preferencias personalizadas
  • Android: ¿Cómo puedo guardar, borrar y restaurar SharedPreferences para la prueba de unidades?
  • SharedPreferences Editor commit lleva mucho tiempo
  • Respondiendo a las actualizaciones de preferencias en Android
  • Mostrar el botón de arriba en la barra de acción en las preferencias de la pantalla principal
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.