Nel mio progetto Android ho deciso di creare wrapper attorno a SharedPreferences (che è fondamentalmente l'archiviazione dei valori-chiave) con l'interfaccia seguente
interface Preferences{
public void saveInt(int value, String key);
public void saveString(String value, String key);
public int readInt(String key);
public String readString(String key);
}
Implemetation utilizza l'API Android SharedPreferences, la versione semplificata è simile a questa:
public class SharedPrefencesWrapper implements Preferences{
private SharedPreferences mSharedPreferences;
public SharedPreferencesStorage(Context context) {
mSharedPreferences = context.getSharedPreferences(PREFS_NAME, Context.MODE_PRIVATE);
}
public void saveInt(int value, String key){
mSharedPreferences.edit().putInt(key, value).commit();
}
//The same for all other public methods
}
Ora voglio testare la classe SharedPreferencesWrapper, ogni metodo pubblico della classe Preferences:
public class SharedPreferencesWrapperTest{
@Test
public void savesBoolean(){
Preferences prefs = new SharedPreferencesWrapper(...);
prefs.saveInt(3, "intKey");
int savedValue = prefs.readInt("intKey");
assertEquals(3, savedValue);
}
}
Ora, il test può assomigliare a questo? O dovrei usare l'API SharedPreferences per controllare i valori salvati nei test? La mia preoccupazione è che per recuperare il valore userò i metodi di SharedPrefencesWrapper, qualcosa non sembra proprio qui.