branch10480’s blog

Topics that I've learned.

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

アプリの状態を確認する

stateメソッドを利用して、アプリの状態(フォアグラウンド、バックグラウンドなど)を取得することができる。

状態
unknown
notRunning 実行されていない
runningBackgroundSuspended バックグラウンドでサスペンド状態
runningBackground バックグラウンドで実行中
runningForeground フォアグラウンドで実行中

■ 使用例

import XCTest
import UIKit

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

        // アプリの状態が「フォアグラウンドで実行中」かどうか
        XCTAssertEqual(app.state, XCUIApplication.State.runningForeground)
    }
}

端末を操作する

端末のボタンや向き、Siriの操作を行うには XCUIDevice を使用する。

■ 使用例

import XCTest
import UIKit

class SampleTestCases: XCTestCase {
    func testExample() {
 
        let device = XCUIDevice.shared
        
        // ホームボタンを押す
        device.press(XCUIDevice.Button.home)
        // 端末の向きを横向きにする
        device.orientation = .landscapeLeft
        // Siriに対して指定した文字列で話しかける
        device.siriService.activate(voiceRecognitionText: "餃子は好きですか?")
    }
}

この操作により、端末を横向きにした時にUIが見えなくならないかのテストをするなどができる。

> 次回に続く