小编rav*_*avi的帖子

围绕 SharedPreference 对辅助类进行单元测试

我有一个帮助程序类将用户对象保存到共享首选项。我在我的数据模型中使用了一个serialize(): String函数和一个create(serializedString: String)函数User。它们使用 GSon 串行器,并且按照单元测试的建议运行良好。

现在我的助手类被调用SharedPreferenceUserStore.kt,它接受一个Context对象。代码是:

class SharedPreferenceUserStore(context: Context) {
    companion object {
        val TAG = SharedPreferenceUserStore::class.java.simpleName
    }

    var userLocalSharedPref: SharedPreferences =
        context.getSharedPreferences(USER_LOCAL_STORE_SHARED_PREF_NAME, Context.MODE_PRIVATE)

    /*
    Store the required data to shared preference
     */
    @SuppressLint("ApplySharedPref")
    fun storeUserData(user: User) {
        val userLocalDatabaseEditor = userLocalSharedPref.edit()
        val serializedData = user.serialize()

        userLocalDatabaseEditor.putString(
            USER_LOCAL_STORE_SHARED_PREF_SERIALIZED_DATA_KEY,
            serializedData
        )
        if (userLocalDatabaseEditor.commit()) {
            Log.d(TAG, " Store Commit return true")
        }
    }


    /*
    Clear all the locally stored data from the …
Run Code Online (Sandbox Code Playgroud)

android unit-testing mockito sharedpreferences kotlin

4
推荐指数
1
解决办法
2958
查看次数

使用Mockito在Android单元测试中模拟共享首选项时出错

我试图通过使用Mockito Library模拟Android共享偏好来编写单元测试,但是即使经过多次尝试它也不适用于我.请检查下面的示例代码,让我知道它出了什么问题

我目前正在使用"JCAndKSolutions/android-unit-test"android junit插件.

我的代码如下:

PreferenceHelper.java public class PreferencesHelper {private SharedPreferences mSharedPreferences;

 public class PreferencesHelper
    {
         private SharedPreferences mSharedPreferences;

         static String PREFERENCE_USER;

         public PreferencesHelper(SharedPreferences mSharedPreferences)
        {
            this.mSharedPreferences = mSharedPreferences;
        }

        public void setUserName(String userName)
        {
            mSharedPreferences.edit().putString(PREFERENCE_USER,   "Vkc").apply();
        }

        public String getUserName()
        {
            return mSharedPreferences.getString(PREFERENCE_USER, null);

        }

    }


Run Code Online (Sandbox Code Playgroud)

PreferenceHelperTest.java

public class PreferencesHelperTest extends TestCase
{
    @Mock
    SharedPreferences mSharedPreference;

    @Mock
    SharedPreferences.Editor mEditor;

    @Mock
    Context context;

    @Mock
    PreferenceManager mPreferenceManager;

    PreferencesHelper mPrefHelper;

    public void setUp() throws Exception
    {
        initMocks(this);
    }

    public void testSetUserName(){

        final …
Run Code Online (Sandbox Code Playgroud)

android mockito sharedpreferences

2
推荐指数
1
解决办法
5570
查看次数