安卓测试共享偏好设置

4

我想测试一个值是否正确保存到了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,我需要模拟/更改什么?
1个回答

0

如果这段代码返回 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);
}

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接