Android测试共享首选项

时间:2018-04-25 05:26:51

标签: android unit-testing

我想测试一个值是否正确保存到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 :(得分:0)

如果返回true,则可以使用此代码保存您的值。

 public String getUserId(){
    SharedPreferences sharedPreferences=context.getSharedPreferences(USER_DETAILS, MODE_PRIVATE);
    return sharedPreferences.getString(USER_ID,null);
}

如果你想获得代码下面的保存值是有帮助的。

by lazy