branch10480’s blog

Topics that I've learned.

iOSアプリ開発自動テストの教科書 を読んでいく 〜 21 〜

UI要素の状態を確認する

UI要素が存在しているかどうかなど、UI要素の状態を確認できる。

宣言 用途
var exists: Bool {get}
var isHittable: Bool {get} 対象UI要素をタップできるかどうか
func waitForExistence(timeout: TimeInterval) -> Bool タイムアウト秒数が経過するまで対象のUI要素が存在するか確認する

■ 使用例

import XCTest
import UIKit

class SampleTestCases: XCTestCase {
    func testExample() {
        let app = XCUIApplication()

        // ニックネームのラベルが存在しているかどうか
        app.staticTexts["nickname_label"].exists
        // ログインボタンがタップできるかどうか
        app.buttons["login_button"].isHittable

        // 指定した秒数まで定期的に存在するかをチェック
        let labelExists = app.staticTexts["nickname_label"].waitForExistence(timeout: 5)
        XCTAssertTrue(labelExists)
    }
}

UI要素の情報を取得する

debugDescriptionを使うことで要素の情報を出力することができる。

import XCTest
import UIKit

class SampleTestCases: XCTestCase {
    func testExample() {
        let app = XCUIApplication()
        
        // 情報を出力
        app.textFields["mail_textfield"].debugDescription
    }
}

> 次回に続く