Swift 2.0で自動UIテストを作成する際にリクエストを模擬する方法はありますか?私が知る限り、UIテストは他の機能とは独立している必要があります。レスポンスに応じてUIの動作をテストするために、サーバリクエストからのレスポンスを模擬する方法はありますか?たとえば、サーバーが停止している場合は、UIテストが実行されます。簡単な例として、ログインの場合は、パスワードが失敗した場合はモックが表示され、ログインが成功した場合は次のページが表示されます。Mock APIがXcode 7のSwift自動UIテストを依頼します
答えて
現在の実装では、UIテストではが直接ではありません。フレームワークがコードに直接持っている唯一のインターフェースは、launch arguments/environmentです。
このコンテキストでは、アプリが特定のキーまたは値を検索するように設定し、一部の機能を切り替えることができます。たとえば、MOCK_REQUESTS
キーが設定されている場合は、HTTPClient
の代わりにMockableHTTPClient
をネットワークレイヤーに挿入します。私はsetting the parametersについて書いていて、NSHipsterにはhow to read themという記事があります。
しかし、理想的ではありませんが、技術的には、あなたが探しているものをいくつかの足取りで達成することは可能です。
ここには私がまとめたtutorial on stubbing network data for UI Testingです。これは、これを実行して実行するために必要なすべてのステップを案内します。
何らかの理由でプロダクション環境にしようと思っているのであれば、Charles Proxyのようなサードパーティのソリューションの使用を検討することができます。
マップローカルツールを使用すると、特定のエンドポイントからのコールをマシン上のローカルファイルにルーティングできます。ローカルファイルに、返信したい応答を含むプレーンテキストを渡すことができます。あなたの例あたり:
あなたのログインは、あなたがルートコンピュータに保存されたファイルにそのエンドポイントを打つの呼び出しはすなわちmappedlocal.txt
できるマップローカルツールを使用してチャールズにエンドポイントyoursite.com/loginを打ちます
mappedlocal.txtは、次のテキスト
HTTP/1.1チャールズが実行されている場合は404が
を失敗して、あなたの応答が404エラーで帰ってくるこのエンドポイントをヒット含まれています。
チャールズでは「マップリモート」と呼ばれる別のオプションを使用して、モックサーバー全体を構築することもできます。モックサーバーは、呼び出しや応答を自由に処理できます。これはまさにあなたが探しているものではないかもしれませんが、他人を助けるかもしれないオプション、そして私は自分自身を使います。
- 1. UIの実行デバイスのxcode 7のテスト
- 2. スタックビューの自動制約違反、Swift 2、iOS 9.3、XCode 7
- 3. Xcode 7 UIテストオーダー
- 4. Xcode 7の自動UIテストでHTTPリクエストをスタブすることは可能ですか?
- 5. Swift開発コードがXcode 8.xまたはXcode 7.xで動作しない
- 6. Xcode 7 UIスワイプを記録しないテスト
- 7. EPiServerでの自動UIテスト
- 8. Swift UIテスト - XCTAssertEqualの動作が正しくありません
- 9. Visual Studio自動UIテストがハングする
- 10. iPhone用XCodeテスト自動化
- 11. Xcode 7の既存のプロジェクトにユニットテストとUIテストを追加
- 12. UIテスト+ postNotificationName + observer + Xcodeに到達しない7
- 13. Xcode 7 UIターゲットロケールと地域設定をテストする
- 14. 自動回転が動作しないiOS 9&xcode 7
- 15. UISliderのエラーXCode 7 Swift 2
- 16. UIテストXCode 7-サブビュー内の要素にアクセスできない
- 17. Web UIの代わりにAPIサービスレベルに基づく自動テスト
- 18. Xcode UIテスト:述語が失敗したときにスナップショットを自動的に取得しますか?
- 19. Windows 7でのサファリの自動テスト
- 20. Windows 7で自動テストが動作しない32ビット
- 21. Xcode UIテスト用オートメーションツール
- 22. XcodeスウィフトUIテスト - シミュレータハードウェアキーボード
- 23. スレッド1:ブレークポイント7.3 Xcode 7 swift
- 24. クロムブルートゥースapiの自動テスト
- 25. Xcode UIテスト - tearDown後にswipeRight()が動作しない
- 26. UIテストがXcode 7.3で動作しなくなった
- 27. Xcode 7魔法のレコードユニットのテストが失敗しました
- 28. mock adwords api
- 29. MacでのSilverLightの自動UIテスト
- 30. Flex UI自動化テストのメリット?
さらに適切なタグを追加しました。 – Liam
私は@JoeMasilottiが正しいと思います。しかし、私の生産コードでは、モックを含むことについて少し神経質になります。 –
テストコードからアプリケーションコードにデータを動的に注入するのに便利なSBTUITestTunnelをチェックすることができます。私の答えを見る[ここ](http://stackoverflow.com/questions/36768883/how-do-i-mock-network-requests-in-xcode-ui-tests-while-the-tests-are-running/36909859 #36909859) –