2017-01-23 6 views
2

1ページ目に移動し、2ページに移動します。 ページ1でhttp Getリクエストを実行すると、エラーが返されます。サーバーがビジー状態で、アラートビューでエラーを表示しますが、要求が成功した場合は2ページに移動します。それ以外に、http取得要求が戻りエラーの場合は、http取得要求問題は現在、表示される次のUIがどのようになるかを知る方法です。現時点では次の要素を確認するために以下のコードを使用していますが、このメソッドは要素が見つかりません。要素Aが見つかったかどうかを調べることができる解決策はすべてステップAを実行し、それ以外の場合は要素Bを次に実行します。Xcode UIテスト:テストを続行する前に次のXCUIElementを確認する方法

enter image description here

XCUIElement *label = self.app.staticTexts[@"Page 2"]; 
NSPredicate *exists = [NSPredicate predicateWithFormat:@"exists == 1"]; 

[self expectationForPredicate:exists evaluatedWithObject:label handler:nil]; 
[self waitForExpectationsWithTimeout:10.0f handler:nil]; 

答えて

1

あなたの問題は、あなたのテストが決定的ではないということです:あなたは、サーバーからの応答が成功するかどうかどうかを決定することはできません。サーバーによって導入されたこの非確定性を除去するために、要求をサーバーにスタブまたはモックすることができます。

特定の条件下で特定の応答を送信するように設定されたモックサーバーを作成することも、スタブフレームワークを使用してアプリ内で応答をスタブすることもできます。

私はこのためにOHHTTPStubsを使用します。 Just EatはUIテスト用に実装する方法についてgood blog postを書いていますが、Swiftを使用している場合はObjective-Cから翻訳する必要があります。

+0

本当にありがとうございます。しかし、実際のライブ(プロダクション)サーバーでアプリをテストする必要があるため、これは私にとっては良い選択ではありません。だから他の方法はありませんか? – Newbie009

+0

サーバーの応答を制御できない場合は、テストする内容を知ることができません。テスト中に見つかったUI要素に応じてif/else文が大きくなる可能性がありますが、それぞれのテストが何をテストしているか分からず、両方のシナリオをテストしたかどうかわからないことは非常に悪いことです。 – Oletha

関連する問題