0

私はユニットテストにGHUnitを使用し、GHAsyncTestCaseのサブクラスを作成しましたが、私の場合、Webサービスは、リクエストを送信して応答を受け取ることを期待するアクティブなサービスリクエストとは異なり、これではなく、パッシブタイプです。チャネルをサブスクライブするとメッセージを送信できるサービスですが、サーバーがサブスクライバーにメッセージをプッシュする頻度についての保証はありません。この場合、サブスクライブしてから50秒後、サーバーは30秒後にメッセージと別のメッセージをプッシュします。それなら私はすべきです:

[self waitForStatus:kGHUnitWaitStatusSuccess timeout:50.0f];

最初のメッセージを確認するため、またはこれを行うための賢い方法はありますか?

ありがとう!

4

1 に答える 1

0

それはあなたが何をしたいかによります。サーバーからのデータを確認する場合は、サーバーにリクエストを送信して、すぐに何かをプッシュして使用するように依頼できます。

[self waitForStatus:kGHUnitWaitStatusSuccess timeout:50.0f];

プッシュされたメッセージを待ちます。

Objective-cコードを検証したい場合は、偽のデータをオブジェクトに送信できます。NSURLConnectionを使用してデータを取得している場合は、テストコードに偽のデータを含めて以下のdelegateメソッドを呼び出します

- (void)connection:(NSURLConnection *)aConnection didReceiveData:(NSData *)data

ユニットテストの背後にある考え方は、「ユニット」テストです。テストコードは、テストする「ユニット」に焦点を当てる必要があります。他の制御できない要因(ネットワークの可用性など)をテストから除外することをお勧めします。

于 2012-11-27T09:10:53.367 に答える