久久久久久久av_日韩在线中文_看一级毛片视频_日本精品二区_成人深夜福利视频_武道仙尊动漫在线观看

如何使用 Mockito 模擬 SharedPreferences

How to mock a SharedPreferences using Mockito(如何使用 Mockito 模擬 SharedPreferences)
本文介紹了如何使用 Mockito 模擬 SharedPreferences的處理方法,對大家解決問題具有一定的參考價值,需要的朋友們下面隨著小編來一起學習吧!

問題描述

我剛剛閱讀了有關 Android 中的單元檢測測試,我想知道如何在沒有任何 SharedPreferencesHelper 類的情況下模擬 SharedPreferences,例如 這里

I have just read about Unit Instrumented Testing in Android and I wonder how I can mock a SharedPreferences without any SharedPreferencesHelper class on it like here

我的代碼是:

public class Auth {
private static SharedPreferences loggedUserData = null;
public static String getValidToken(Context context)
{
    initLoggedUserPreferences(context);
    String token = loggedUserData.getString(Constants.USER_TOKEN,null);
    return token;
}
public static String getLoggedUser(Context context)
{
    initLoggedUserPreferences(context);
    String user = loggedUserData.getString(Constants.LOGGED_USERNAME,null);
    return user;
}
public static void setUserCredentials(Context context, String username, String token)
{
    initLoggedUserPreferences(context);
    loggedUserData.edit().putString(Constants.LOGGED_USERNAME, username).commit();
    loggedUserData.edit().putString(Constants.USER_TOKEN,token).commit();
}

public static HashMap<String, String> setHeaders(String username, String password)
{
    HashMap<String, String> headers = new HashMap<String, String>();
    String auth = username + ":" + password;
    String encoding = Base64.encodeToString(auth.getBytes(), Base64.DEFAULT);
    headers.put("Authorization", "Basic " + encoding);
    return headers;
}

public static void deleteToken(Context context)
{
    initLoggedUserPreferences(context);
    loggedUserData.edit().remove(Constants.LOGGED_USERNAME).commit();
    loggedUserData.edit().remove(Constants.USER_TOKEN).commit();
}

public static HashMap<String, String> setHeadersWithToken(String token) {
    HashMap<String, String> headers = new HashMap<String, String>();
    headers.put("Authorization","Token "+token);
    return headers;
}
private static SharedPreferences initLoggedUserPreferences(Context context)
{
    if(loggedUserData == null)
        loggedUserData = context.getSharedPreferences(Constants.LOGGED_USER_PREFERENCES,0);
    return loggedUserData;
}}

是否可以在不創建其他類的情況下模擬 SharedPreferences?

Is is possible to mock SharedPreferences without creating other class on it?

推薦答案

所以,因為 SharedPreferences 來自您的 context,所以很簡單:

So, because SharedPreferences comes from your context, it's easy:

final SharedPreferences sharedPrefs = Mockito.mock(SharedPreferences.class);
final Context context = Mockito.mock(Context.class);
Mockito.when(context.getSharedPreferences(anyString(), anyInt())).thenReturn(sharedPrefs);

// no use context

例如,對于 getValidToken(Context context),測試可以是:

for example, for getValidToken(Context context), the test could be:

@Before
public void before() throws Exception {
    this.sharedPrefs = Mockito.mock(SharedPreferences.class);
    this.context = Mockito.mock(Context.class);
    Mockito.when(context.getSharedPreferences(anyString(), anyInt())).thenReturn(sharedPrefs);
}

@Test
public void testGetValidToken() throws Exception {
    Mockito.when(sharedPrefs.getString(anyString(), anyString())).thenReturn("foobar");
    assertEquals("foobar", Auth.getValidToken(context));
    // maybe add some verify();
}

這篇關于如何使用 Mockito 模擬 SharedPreferences的文章就介紹到這了,希望我們推薦的答案對大家有所幫助,也希望大家多多支持html5模板網!

【網站聲明】本站部分內容來源于互聯網,旨在幫助大家更快的解決問題,如果有圖片或者內容侵犯了您的權益,請聯系我們刪除處理,感謝您的支持!

相關文檔推薦

EditText: Disable Paste/Replace menu pop-up on Text Selection Handler click event(EditText:禁用文本選擇處理程序單擊事件上的粘貼/替換菜單彈出)
Multiline EditText with Done SoftInput Action Label on 2.3(2.3 上帶有完成 SoftInput 操作標簽的多行 EditText)
How to detect the swipe left or Right in Android?(如何在 Android 中檢測向左或向右滑動?)
Prevent dialog dismissal on screen rotation in Android(防止在Android中的屏幕旋轉對話框解除)
How do I handle ImeOptions#39; done button click?(如何處理 ImeOptions 的完成按鈕點擊?)
How do you set EditText to only accept numeric values in Android?(您如何將 EditText 設置為僅接受 Android 中的數值?)
主站蜘蛛池模板: 午夜视频在线播放 | 日韩精品免费一区二区在线观看 | 青青激情网 | 黄色网页在线观看 | 成人一区二区三区在线观看 | 日韩精品在线观看一区二区三区 | 天堂资源 | 日本成人在线播放 | 三级在线视频 | 亚洲视频一区在线观看 | 精品一区二区电影 | 国产精品视频免费观看 | 毛片一区二区三区 | 国产一区二区影院 | 一区二区三区免费观看 | 一区二区视频在线观看 | 欧美综合一区二区三区 | 久在线 | 中文字幕日韩欧美一区二区三区 | 成人影院免费视频 | 97精品超碰一区二区三区 | 国产精品久久久久永久免费观看 | 亚洲电影专区 | h在线免费观看 | 国产成人网 | 免费看a| 亚洲成人一区 | 亚洲综合视频 | 亚洲毛片在线观看 | 国产99久久久国产精品下药 | 欧美在线观看一区 | 亚洲二区在线 | 国产精品国产馆在线真实露脸 | 国产一区二区三区四区 | 精品国产黄a∨片高清在线 成人区精品一区二区婷婷 日本一区二区视频 | 麻豆久久久9性大片 | 精品国产一级片 | 亚洲欧美一区二区三区国产精品 | 日韩中文字幕免费在线观看 | 国产一区二区在线视频 | 国产美女黄色片 |