我想测试是否将值正确保存到SharedPreferences
。
在我的代码中,我SharedPreferences
注入了代码,因此我保存了一个值,如下所示:
with(sharedPreferences.edit()) {
putString("testkey", "dummyValue")
apply()
}
在我的测试中:
val mockSharedPreferences = mock(SharedPreferences::class.java)
val mockEditor = mock(SharedPreferences.Editor::class.java)
`when`(sharedPreferences.edit()).thenReturn(mockEditor)
assert(mockSharedPreferences.getString("testkey") == "dummyValue")
问题是,mockSharedPreferences返回null,所以还需要模拟/更改什么?
如果该代码返回true,则可以使用此代码来保存您的值。
public boolean saveUserId(String saveUserId) {
SharedPreferences
sharedPreferences=context.getSharedPreferences(USER_DETAILS,
MODE_PRIVATE);
SharedPreferences.Editor editor=sharedPreferences.edit();
editor.putString(USER_ID, saveUserId);
editor.apply();
return true;
}
如果您想在代码下面获取保存的值,将很有帮助。
public String getUserId(){
SharedPreferences sharedPreferences=context.getSharedPreferences(USER_DETAILS, MODE_PRIVATE);
return sharedPreferences.getString(USER_ID,null);
}
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句