Android测试共享首选项

Rgfvfk Iff

我想测试是否将值正确保存到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] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章