我想清除在我的測試過程中添加的所有SharedPreferences。我已經閱讀了一些帖子和官方文檔(SharedPreferences.Editor.clear())。但是當我在單元測試運行後開始我的應用程序時,我仍然發現測試值。Android單元測試:如何清除SharedPreferences
所以,在AndroidTestCase.tearDown(),我有這樣的:
public class PrivateStorageUtilsTest extends AndroidTestCase {
private static final String KEY_SP_PACKAGE = "PrivateStorageUtilsTest";
protected void setUp() throws Exception {
super.setUp();
// Clear everything in the SharedPreferences
SharedPreferences sharedPreferences = getContext()
.getSharedPreferences(KEY_SP_PACKAGE, Context.MODE_PRIVATE);
SharedPreferences.Editor editor = sharedPreferences.edit();
editor.clear();
editor.commit();
}
protected void tearDown() throws Exception {
// Clear everything in the SharedPreferences
SharedPreferences sharedPreferences = getContext().
getSharedPreferences(KEY_SP_PACKAGE, Context.MODE_PRIVATE);
SharedPreferences.Editor editor = sharedPreferences.edit();
editor.clear();
editor.commit();
}
}
我發現SO是關於clear()
,我已經在這裏做了之後增加commit()
每其他問題。
EDIT 1添加setUp()
方法
編輯2提供了擴展的類
您是否使用相同的上下文來選擇並清除SharedPreferences? – Blackbelt
Context是由AndroidTestCase類提供的。另外,當我啓動我的應用程序時,我仍然調用'getContext()'。如果你願意,我可以爲你提供單元測試的'setUp()'方法。 – mithrop
是的,可能是更好。您是否知道,當您運行測試時,不同的apk會在設備測試中更新? – Blackbelt