2011-01-26 9 views
0

私はGHUnitテストフレームワークでユニットテストを書いています。私はNSMutableDictionaryのdetailsDictをアプリケーション代理人で定義しました。ユニットテストでNSMutableDictionaryの値を設定できません

私のアプリケーションデリゲートでは、いくつかの値を&に設定しました。 それはアプリでうまく動作しますが、ユニットテストで値を設定するメソッドを呼び出そうとすると、値を設定できません&辞書は空のままです。

テストケースでは、私は自分のappDelegateを割り当てます。いくつかのキーを設定するこのオブジェクトからのメソッドを通知しますが、その値をチェックすると空のままです。

単体テストや何が欠けていますか?

いずれの回答ポインタも高く評価されます。

編集:私は、私は別にこれを行うための他の方法で他の回答にまだ開いてこの

#ifdef UNIT_TESTING 
    detailsDict = [[NSMutableDictionary alloc] init]; 
#endif 

ようdetailsDic変数 にinitのallocしなければならなかったそれを得ました。

+1

あなたのアプリケーションデリゲートのコードを投稿する必要があります。これを個別に初期化する必要はありません - 明らかに何かが起こっていることは異なっています。アプリケーションの代理人はどこに 'detailsDict'を割り当てましたか?たぶん 'applicationDidStart:withOptions:'?手動で代理人を割り当て/初期化するだけであれば、これはもちろん呼び出されません。 –

答えて

1

変数を割り当てて初期化することはできません。オブジェクトを割り当てて初期化することができます。実際には、このNSMutableDictionaryオブジェクトを割り当てて初期化する必要があります。

適切な場所は、アプリケーションとテストケースの両方で実行される場所です。アプリデリゲートのinitメソッドは、おそらく良い選択です。

つまり、ユニットテストはアプリケーションではないため、あなたのアプリケーションデリゲートはユニットテストには存在しないはずです。テストすることを意味する機能は、1つまたは複数の別個のコントローラに分割する必要があります。これらのコントローラは、アプリケーションデリゲートと関連する単体テストから作成して操作します。

+0

Peterありがとうございました。あなたの答えはいつでも参考になります。もっと学び、もっと私たちを助けてもいいですか?私たちはここにいることができて幸運です。 –

関連する問題