2016-10-12 8 views
0

私のアプリケーションの最初の実行時に表示されるダイアログがあります。したがって、私のテストケースはダイアログに応答するようにしたい - ただし、表示されている場合のみ。テストケースに失敗することなくUI要素を待つ方法

タイムアウトに達すると、waitForExpectationsメソッドがエラーになります。

テストケースが表示されない場合でも、この要素が短時間表示されるのを待つ最善の方法は何ですか?

+0

をアプリが最初に実行されたときには使用しない理由ダイアログのみ、表示された場合:

BUTTON_TITLEは

はこの答えに詳細はこちら...、「許可」、「OK」のようなものですアプリケーションの最初の実行時にのみロジックをテストする? – Sparky

+0

アプリの最初の実行であることをどのように知ることができますか? – zorro2b

答えて

0

待機を再実装する必要があります。聞こえるほどひどいので、私はSleepとIf文を使うことをお勧めします。アプリケーションがコンテンツの提示を完了するのを待っている間にテストスレッドをロックし、評価する必要があります。

残念ながら、私が知っている限り、waitForExpectationsWithTimeoutのオプションのどれも、expectationForPredicateがタイムアウト時間の最後に実行されないと、テストに失敗しないことを許可します。

0

は、次のコードを試してみてください。

addUIInterruptionMonitorWithDescription("SYSTEM_DESCRIPTION") { (alert) -> Bool in 
    alert.buttons["BUTTON_TITLE"].tap() 
    return true 
} 

app.buttons["BUTTON_TITLE"].tap() 
app.tap() 

SYSTEM_DESCRIPTIONは、システムアラートのタイトルや説明です。 https://stackoverflow.com/a/32228033/6657951

関連する問題