Sto tentando di cancellare tutte le SharedPreferences aggiunte durante i miei test. Ho già letto alcuni post e la documentazione ufficiale (SharedPreferences.Editor.clear()). Ma quando avvio la mia applicazione dopo aver eseguito i test delle unità, ho ancora trovato i valori di test.Test unità Android: come cancellare SharedPreferences
Così, nel AndroidTestCase.tearDown(), faccio questo:
public class PrivateStorageUtilsTest extends AndroidTestCase {
private static final String KEY_SP_PACKAGE = "PrivateStorageUtilsTest";
protected void setUp() throws Exception {
super.setUp();
// Clear everything in the SharedPreferences
SharedPreferences sharedPreferences = getContext()
.getSharedPreferences(KEY_SP_PACKAGE, Context.MODE_PRIVATE);
SharedPreferences.Editor editor = sharedPreferences.edit();
editor.clear();
editor.commit();
}
protected void tearDown() throws Exception {
// Clear everything in the SharedPreferences
SharedPreferences sharedPreferences = getContext().
getSharedPreferences(KEY_SP_PACKAGE, Context.MODE_PRIVATE);
SharedPreferences.Editor editor = sharedPreferences.edit();
editor.clear();
editor.commit();
}
}
Ogni altra domanda che ho trovato su così è stato sull'aggiunta commit()
dopo la clear()
, che ho già fatto qui.
EDIT 1 Aggiunta setUp()
metodo
EDIT 2 Fornire classe estesa
stai utilizzando lo stesso contesto per scrivere e deselezionare SharedPreferences? – Blackbelt
il contesto è quello fornito dalla classe AndroidTestCase. Inoltre, quando lancio la mia applicazione, chiamo ancora 'getContext()'. Posso fornirti il metodo 'setUp()' dei miei test di unità se lo desideri. – mithrop
sì, probabilmente è meglio. Sei consapevole del fatto che quando esegui i test un diverso apk è aggiornato sul test del dispositivo? – Blackbelt