🤖

[iOS]UITestで写真アルバムのパーミッションを許可する

2023/10/13に公開

UITestを使用して、iOSアプリのテストを自動化する際、アプリが写真アルバムへのアクセスを要求する場合にはアクセスの許可をシミュレートする必要があります。

しかし、テストを実行しているアプリからはシステムのパーミッションアラートを触ることができません。

そこで直接Springboardを操作することで、Springboardから表示されるアラートを通じて写真アルバムへのアクセスを許可してみます。

以下サンプルコード

import XCTest

class PhotoAlbumPermissionTest: XCTestCase {

    func testGrantPhotoAlbumPermission() {
        let springboard = XCUIApplication(bundleIdentifier: "com.apple.springboard")
        
        // Allow Full Access ボタンが表示されるまで待つ
        let allowButton = springboard.buttons["Allow Full Access"]
        _ = allowButton.waitForExistence(timeout: 3)
        
        // Allow Full Access ボタンをタップ
        allowButton.tap()
    }
}

2回目以降のテストでは、allowButtonは表示されないので注意

Discussion