Android: ¿Cómo puedo guardar, borrar y restaurar SharedPreferences para la prueba de unidades?

Sé cómo borrar SharedPreferences para ejecutar mis pruebas de unidad en un estado definido como este: PreferenceManager.getDefaultSharedPreferences(getActivity()).edit().clear().commit()

Sin embargo, me gustaría poder guardar y restaurar la configuración que prefiero como usuario de mi propia aplicación después de ejecutar las pruebas de unidad.

¿Hay una manera fácil de hacer esto sin guardar y restaurar manualmente cada elemento de preferencia individualmente?

Gracias, Jeff

Suena como lo que necesita hacer es proporcionar un contenedor en SharedPreferences que expone su propia interfaz de preferencias compartidas. P.ej

 public interface PreferencesProvider { String getStringValue(String key); } 

Cualquiera que sea su clase en prueba (por ejemplo, una actividad) puede utilizar una implementación concreta de PreferencesProvider que llama a PreferenceManager.getDefaultSharedPreferences … etc. En su clase de prueba, puede sustituir una implementación concreta falsa para devolver lo que quiera para sus pruebas.

De esta manera, su proveedor de preferencias se desacopla de su clase de aplicación y las pruebas se vuelven simples. De hecho, sus pruebas nunca necesitan tocar las preferencias reales almacenadas en su teléfono.

Poner esto en acción, sin embargo, requiere algún tipo de mecanismo de inyección de dependencia como RoboGuice.

  • ¿Cómo puedo comprobar en Robotium que la aplicación ha terminado?
  • ¿Cómo crear sombras personalizadas en robolectric 3.0?
  • La forma más rápida de probar el código fuente de Android modificado?
  • Android en las pruebas de suscripción de aplicaciones
  • Problema con Android IAP, sin OrderID en el objeto de compra
  • ¿Cómo puedo ejecutar el código en el hilo de la interfaz de usuario en una prueba de Android JUnit sin una actividad?
  • ¿Cómo probar una ListActivity burlándose de su contentProvider y así aislar la prueba de la base de datos?
  • Prueba de unidad automatizada para Android / Ant
  • Carpeta de activos en Android Studio Unit Test
  • Envío de mayúsculas a un TextEdit durante pruebas instrumentadas
  • ApplicationTestCase obsoleto en el nivel 24 de API
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.