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.
- La forma más rápida de probar el código fuente de Android modificado?
- ¿Hay un comando ADB para habilitar / deshabilitar datos móviles? (Dispositivo enraizado)
- Optimizar el esfuerzo de prueba de Android
- Soluciones actuales para probar aplicaciones de Android
- Envío de mayúsculas a un TextEdit durante pruebas instrumentadas
¿Hay una manera fácil de hacer esto sin guardar y restaurar manualmente cada elemento de preferencia individualmente?
Gracias, Jeff
- Espresso prueba pegado / inactivo después de realizar (haga clic ()) en el botón en ViewAnimator
- ¿Cómo crear sombras personalizadas en robolectric 3.0?
- ¿Cómo probar la función de sincronización de ejecución en android?
- ¿Cómo puedo ejecutar una sola prueba con gradle android
- ¿Cómo forzar un cambio de orientación en una prueba de instrumentación de Android?
- ClassNotFoundException durante el instrumento de prueba de Android
- Cómo generar html informe con gradle 1.12?
- ¿Por qué no hay instrumentación de prueba para BroadcastReceiver?
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.
- Android – Detectar ruta de arrastre complejo
- Eclipse IDE: ¿No se pudo inicializar el error de seguimiento de seguimiento después de instalar Android SDK?