コンテクスト
多くのネイティブアプリでは、ユーザーは独自の認証システムではなく、Facebookで認証されます。これは、Javascriptバインディングを使用してiOSUIAutomationテストケースを作成するのに問題がありました。ユーザーの観点から見ると、私たちのシナリオは通常、次のようになります。
シナリオ
- ユーザーは「Facebookに接続」をクリックします。
- (ターゲット)アプリケーションがバックグラウンドに移動し、Safariブラウザーがフォアグラウンドに移動するため、ユーザーはoAuthで認証できます。
- ユーザーは認証データを入力して送信します。
- Safariブラウザウィンドウがバックグラウンドに移動し、ターゲットアプリケーションがフォアグラウンドに戻ります。
問題
テストを実行する前に、Instrumentsはユーザーにトップメニューバーで「ターゲットアプリ」を設定させます。Instruments内で自動化を使用すると、ターゲットアプリがバックグラウンドに移動し、Safariアプリがフォアグラウンドに移動するときに問題が発生します(ステップ#2)。この時点で、Instrumentsはレポートします
ターゲットアプリケーションが停止したようです
これは、(または同様の)変更のポーリング/テストと同じくらい簡単だと思いましたがUIATarget.localTarget().frontMostApp()
、そうではないようです-テストの実行は実行を停止します。
Instrumentsを使用してこのシナリオを正常にテストするにはどうすればよいですか? これは、UIAutomationのJavascriptバインディングを使用したテスト可能なシナリオですか?