
Xcode14.3のUI Testingの紹介
以前、次のブログ記事を書きました。
このときに気が付かなかったのですが、Xcode14.3のRelease Noteから「Testing」と「UI Testing」が分かれたようです。
このXcode14.3から「UI Testing」で追加されたAPIが思ったよりも多かったので、本記事ではその追加されたAPIについて紹介したいと思います。
New Features
追加されたのは次の3種類です。
位置の設定、設定された位置の取得ができるAPIの追加
指定したURLを開く、指定したURLからアプリを開くことができるAPIの追加
デバイスのライトモード、ダークモードの取得と設定ができるAPIの追加
それぞれについて次で説明をしていきます。
位置の設定、設定された位置の取得ができるAPIの追加
次で現在の位置が取得できます。
// 現在の位置がXCUILocationで返ってくる
XCUIDevice.shared.location
次で位置を設定することができます。
// 現在の位置をXCUILocationで指定する
XCUIDevice.shared.location = location
指定したURLを開く、指定したURLからアプリを開くことができるAPIの追加
次のようにするとブラウザが起動して指定したアドレスを開くことができます。
XCUIDevice.shared.system.open(URL(strings: "<https://www.example.com>")!)
また、次のようにすると特定のアドレスからアプリケーションを開くことができます。
XCUIApplication().open(URL(string: "<https://www.example.com>")!)
デバイスのライトモード、ダークモードの取得と設定ができるAPIの追加
次のように指定すればライトモードや、ダークモードに変更できます。
// ダークモードに変える
XCUIDevice.shared.appearance = .dark
// ライトモードに変える
XCUIDevice.shared.appearance = .light
次で現在のモードを知ることができます。
// 現在のモードを知ることができる
XCUIDevice.shared.appearance
総括
今までと異なり端末側に対しての操作が拡充されてきています。
モバイルアプリのテストの場合、「対象のアプリ」x 「実行する環境(端末とサーバー」という2つの軸がまず必要です。
その中で、実行する環境(端末)の操作がネックになりえることがありました。
今まではここらへんは頑張ってやってたりしたのですが、そこらへんが公式にサポートされることでテストの範囲が広がったと言えます。
Google I/O 2023でも多数の端末に対するアプローチの話があったりと、今まで対象のアプリを操作するという観点から、次はいかに「いろいろな端末の状態」に対してテストができるかという観点が追加されてきたといえます。