4

SharedPreferencesをクリアして、次のような定義済みの状態で単体テストを実行する方法を知っています。PreferenceManager.getDefaultSharedPreferences(getActivity()).edit().clear().commit()

ただし、単体テストを実行した後、自分のアプリケーションのユーザーとして好みの設定を保存して復元できるようにしたいと思います。

各設定項目を個別に手動で保存および復元せずにこれを行う簡単な方法はありますか?

ありがとう、ジェフ

4

1 に答える 1

2

あなたがする必要があるのは、あなた自身の共有設定インターフェースを公開するSharedPreferencesのラッパーを提供することのように思えます。例えば

public interface PreferencesProvider {
    String getStringValue(String key);
}

テスト対象のクラス(アクティビティなど)が何であれ、PreferenceManager.getDefaultSharedPreferences...などを呼び出すPreferencesProviderの具体的な実装を使用できます。テストクラスでは、偽の具象実装を代用して、テストに必要なものを返すことができます。

このようにして、設定プロバイダーがアプリケーションクラスから切り離され、テストが簡単になります。実際、テストで携帯電話に保存されている実際の設定に触れる必要はありません。

ただし、これを実行するには、RoboGuiceのような何らかの依存性注入メカニズムが必要です。

于 2011-04-24T11:55:55.983 に答える