0

えーと、

最近、既存の iOS アプリケーションに CoreData を統合しました。一部のドメインおよびネットワーク機能に関して記述された既存のテストがあります。(userDefaults に格納する代わりに) CoreData を使用するように後付けする必要があります。

私はGHUnitIOS.framework自分のプロジェクトに含めました。ただし、TestAppDelegate は CoreData について何も知らないため、すべてのテストが失敗していmanagedObjectContextます。私が見ているものについての参考のために:

[GHUnitIOSAppDelegate managedObjectContext]: unrecognized selector sent to instance

これは理にかなっています。テスト アプリのデリゲートには、プロパティとして managedObjectContext がありません。追加したいのですが、フレームワークを使用するときはヘッダー ファイルにしかアクセスできないため、必要に応じて実際に変更することはできません。GHUnit のソースをダウンロードして実装ファイルを変更することもできますが、別のオプションがある場合はそうしたくありません。

他の人はこの問題をどのように解決しましたか? IE、GHUnit を使用して CoreData をサポートするようにテストを修正するにはどうすればよいですか?

どうもありがとう。

4

1 に答える 1

2

私は以前にこの問題を抱えていました。GHUnitテストフレームワークは、独自のアプリデリゲートを使用します。したがって、デリゲートを呼び出すと、アプリデリゲート内で記述したコードが呼び出されず、その動作が不安定になる可能性があります。

一般的に言えば、アプリのデリゲートではないシングルトンでのmanagedObjectContextの呼び出しを常に処理する必要があります。最近、OCunitからGHUnitに切り替えて、そのすべての機能を別のクラスに抽象化する必要がありました。それは苦痛でしたが、それだけの価値がありました。

于 2012-12-07T23:06:58.500 に答える