2016-05-31 4 views
2

私は、オンラインとオフラインのときに機能を分離したアプリを書いています。これらの機能では、Reachabilityを使用してインターネット接続をチェックし、各ケース(オンライン/オフライン)ごとに異なる動作を行います。インターネット接続の場合XCTestCase

私は、これらのビジネスロジックのテストケースを作成する必要がありました。どこでも検索しましたが、iOSのテストケースについては誰も気にしないようです。

オンライン/オフラインの両方のケースでカバーするテストケースを作成したいと思います。 iOSで可能ですか?もしそうなら、どうやってインターネット接続の状態をシミュレートできますか?

UPDATEのQUESTION:

私はまた、オフラインにオンラインおよびその逆に切り替えるケースをカバーしたいです。このネットワーク接続の状態をシミュレートする方法が必要です。あなたが次に到達可能性を送信

id reachabilityMock = OCMClassMock([Reachability class]); 
[OCMStub([reachabilityMock currentReachabilityStatus]) andReturnValue:@(ReachableViaWiFi)]; 
[OCMStub([reachabilityMock reachabilityForInternetConnection]) andReturn:reachabilityMock]; 
Reachability *reachability = [Reachability reachabilityForInternetConnection]; 
XCTAssertEqual(reachability.currentReachabilityStatus, ReachableViaWiFi); 

OCMock

使用して戻り値を模擬する必要があり

+0

これが役に立つかもしれません:[からかっているか?](http://stackoverflow.com/questions/2665812/what-is-mocking)、[OCMock](http://ocmock.org)。 – FreeNickname

答えて

3

は、手動で通知を変更しました。

[[NSNotificationCenter defaultCenter] postNotificationName: kReachabilityChangedNotification object: noteObject]; 
+0

こんにちは、遅いコメントを申し訳ありません。私は静的なシングルトンオブジェクトを持っています。これは 'Reachability'のインスタンスを保持し、インターネットの変更をチェックします。そのオブジェクトは、到達可能性オブジェクト**と一緒に初期化されています**テストセットアップ前に**、そのモックはそのプロパティで動作しません。これを回避するにはどうしたらいいですか? – Eddie

+0

シングルトンが初期化される前に、模倣するためにメソッドスウィズルを使用する必要があるかもしれません。 – Bing

+0

ありがとうございます、私は後でメソッドのうねりをテストした後にあなたに連絡します。良い感じ。 – Eddie

関連する問題