2017-03-15 5 views
0

Xcode 8でUITestsを実行しています。写真をアプリに追加するテストがあります。私が最初にアプリケーションをインストールすると、フォトアルバムへのアクセスを要求するポップアップが表示されます。Xcode 8 - UITestsを使用して写真アルバムへのアクセスを許可することを選択します。

私が試したことはすべて「Do not Allow(許可しない)」ボタンが選択され、テストが中断されます。 '許可'ボタンをクリックするとUIAlertが見つかるが、po XCUIApplication()。debugDescriptionを実行すると、画面にもかかわらず警告が表示されない。

誰もこの問題を回避する方法を見つけましたか?あなたはUI中断モニターを追加する必要がUITest中にシステムアラートを処理するために

+0

ジョーンズの答えが正しい。デバッグ記述を印刷するときに何も表示されない理由は、アラートが表示される前からビュー階層が更新されていないためです。アプリケーションと対話しようとすると(アラートを無視して)、ビュー階層が更新され、アラートが検出され、割り込みハンドラが実行されてアラートが解除され、インタラクションが実行されます。 – Oletha

答えて

1

func testPhotoLibraryAccess() { 
    let app = XCUIApplication() 
    app.launch() 

    // when system alert is shown -> dismiss it by pressing "OK" 
    // (the description parameter is only there for debugging purposes 
    // so it can be anything you like) 
    addUIInterruptionMonitor(withDescription: "Photos Access Alert") { (alert) -> Bool in 
     alert.buttons["OK"].tap() 
     return true 
    } 

    // tap button that tries to open user's photo library 
    app.buttons["Open Photos"].tap() 

    // select "Moments" 
    app.buttons["Moments"].tap() 

    XCTAssert(app.navigationBars["Moments"].exists) 
} 

あなたはUI中断Monitorが前システム追加されていることを確認する必要があり、この作業をするためにアラートはあなたのUITestによって引き起こされます!

関連する問題