アクティビティ用の ActivityInstrumentationTestCase2 があります。
そこで、 onStop() メソッドで、Activity が BACK キーで終了したときに設定の変更が保存されることをテストします。
私のテストでは、アクティビティを開始し、設定を変更してから、finish() でアクティビティを停止します。アクティビティが終了するのを待ってから、SharedPreferences に保存されている設定を確認します。
Android 4.3 を搭載した Nexus 7 では、このテストが失敗することはありません。
Android 4.1.2 を搭載した Samsung S3 では、常に失敗します。
別のコンテキストを使用してみました。また、SharedPreferences.Editor で apply() の代わりに commit() を使用しましたが、動作に違いはありませんでした。
何か案は?