私のアプリケーションの最初の実行時に表示されるダイアログがあります。したがって、私のテストケースはダイアログに応答するようにしたい - ただし、表示されている場合のみ。テストケースに失敗することなくUI要素を待つ方法
タイムアウトに達すると、waitForExpectationsメソッドがエラーになります。
テストケースが表示されない場合でも、この要素が短時間表示されるのを待つ最善の方法は何ですか?
私のアプリケーションの最初の実行時に表示されるダイアログがあります。したがって、私のテストケースはダイアログに応答するようにしたい - ただし、表示されている場合のみ。テストケースに失敗することなくUI要素を待つ方法
タイムアウトに達すると、waitForExpectationsメソッドがエラーになります。
テストケースが表示されない場合でも、この要素が短時間表示されるのを待つ最善の方法は何ですか?
待機を再実装する必要があります。聞こえるほどひどいので、私はSleepとIf文を使うことをお勧めします。アプリケーションがコンテンツの提示を完了するのを待っている間にテストスレッドをロックし、評価する必要があります。
残念ながら、私が知っている限り、waitForExpectationsWithTimeout
のオプションのどれも、expectationForPredicateがタイムアウト時間の最後に実行されないと、テストに失敗しないことを許可します。
は、次のコードを試してみてください。
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
をアプリが最初に実行されたときには使用しない理由ダイアログのみ、表示された場合:
BUTTON_TITLEは
はこの答えに詳細はこちら...、「許可」、「OK」のようなものですアプリケーションの最初の実行時にのみロジックをテストする? – Sparky
アプリの最初の実行であることをどのように知ることができますか? – zorro2b