UIテスト概要
XCUITest
は XCTest
の一部として存在している。UITest実装をサポートしてくれる機能としていかがある。
- テストケースのレコーディング機能
- テスト失敗時のスクリーンショット撮影
他にもUIテストとして使えるツールには以下が存在する。
名称 | 説明 |
---|---|
XCUITest | Apple公式 |
EarlGrey | UI要素の動機を待ってくれたりと、簡潔にテストコードが書ける |
Appium | クライアント / サーバモデルであり、Selenium WebDriver 互換APIでテストコードが書ける |
EarlGrey
や Appium
も内部的には XCTest や XCUITest を利用している。ゆえに XCUITest について学ぶことは無駄にはならない。
XCUITest 実装の流れ
主に以下の3クラス、XCTestのAssertionを使う。
名称 |
---|
1. XCUIApplication |
2. XCUIElementQuery |
3. XCUIElement |
流れ
- XCUIApplicationを用いてアプリを起動させる
- 起動したアプリ(XCUIApplication)に対して XCUIElementQuery を使用して UI要素を発見する
- 見つけたUI要素(XCUIElement)に対して行いたい操作(tapメソッドなど)を行う
- 操作した結果に対して XCTest の Assertion を使い、UI要素などの状態を期待値と実際の値で比較する
■ 基本的な形
import XCTest class SampleUITests: XCTestCase { override func setUp() { super.setUp() // テストコードが失敗した時点で処理を止めるか continueAfterFailure = false // アプリの起動を行う // 何も指定しない場合はXcodeで設定している対象のアプリが起動する XCUIApplication().launch() } override func tearDown() { super.tearDown() } /// サンプルテストケース /// 名前は test から始めること! func testExample() {} }