1

保存された NSUserDefaults を表示する簡単な方法?という質問を読みました。

アプリの .plist ファイルは見つかりましたが、テスト バンドルのファイルはどこにありますか?

4

3 に答える 3

5

Xcode 4 の OCUnit との統合を使用すると、実行中のアプリケーションにテスト バンドルが挿入されます。したがって、NSUserDefaults はアプリケーション自体に保存されます。これは単体テストの問題です。アプリを手動で実行すると、デフォルトがテストによって上書きされる可能性があります。

[NSUserDefaults standardUserDefaults]直接使用する代わりに、依存性注入を使用して、初期化子の引数としてユーザーのデフォルトを渡します。次に、クエリできるテスト double を渡すことができます。(依存性注入に代わる方法は、ヘルパー メソッドから NSUserDefaults を返し、必要に応じてそのメソッドをオーバーライドしてテスト double を返すことです。)

于 2011-06-03T05:58:20.540 に答える
2

私の環境 (Xcode 4.2、シミュレーターでテストを実行)NSUserDefaultsでは、次のファイルに書き込みます。

~/Library/Application Support/iPhone Simulator/Library/Preferences/otest.plist`

のキャッシング メカニズム (クラス リファレンスで説明)が原因でファイルが表示されなかったことNSUserDefaultsと、プロジェクトの単体テストがキャッシング時間間隔が経過するのに十分な時間実行されていないことが原因だと思います。

otest.plistただし、テストの実行中に何かがNSUserDefaultインスタンス メソッドを呼び出した場合は、書き込まれることが保証されます。synchronize

于 2012-02-05T23:18:15.173 に答える
1

OCUnit はNSUserDefaults永続的に保存するのではなく、メモリに保存するようです。しかし、私は間違っている可能性があります。

于 2011-05-31T21:12:55.477 に答える