サーチ…


構文

  • XCUIApplication()//アプリケーションのプロキシアプリケーションを識別する情報は、Xcodeターゲット設定で「ターゲットアプリケーション」として指定されています。
  • XCUIElement()//アプリケーション内のユーザーインターフェイス要素。

Xcodeプロジェクトにテストファイルを追加する

プロジェクトを作成するとき

プロジェクト作成ダイアログで「UIテストを含める」をチェックする必要があります。

ここに画像の説明を入力

プロジェクトの作成後

プロジェクトの作成中にUI targetをチェックしていなかった場合は、後でテストターゲットを追加することができます。

Setps:

  • プロジェクトを開いている間、 File - > New - > Target
  • iOS UI Testing Bundleを探す

ここに画像の説明を入力

アクセシビリティ識別子

ユーティリティでアクセシビリティが有効になっている場合

  • storyboard選択します。
  • the Utilities
  • Identity Inspector選択
  • ストーリーボードであなたの要素を選択してください
  • 新しいアクセシビリティ識別子を追加する(例: addButton

ここに画像の説明を入力

ユーティリティでアクセシビリティが無効になっている場合

  • storyboard選択します。
  • the Utilities
  • Identity Inspector選択
  • ストーリーボードであなたの要素を選択してください
  • User Defined Runtime Attributesに属性を追加する
  • Key Pathタイプ - accessibilityIdentifier
  • Type - `String
  • Value - 要素の新しいアクセシビリティ識別子(サンプルview

ここに画像の説明を入力

UITestファイルでの設定

import XCTest

class StackOverFlowUITests: XCTestCase {

    private let app = XCUIApplication()

    //Views

    private var view: XCUIElement!

    //Buttons

    private var addButton: XCUIElement!


    override func setUp() {
        super.setUp()
    
        app.launch()
    
        //Views
    
        view = app.otherElements["view"]
    
        //Buttons
    
        addButton = app.buttons["addButton"]
    }

    func testMyApp() {

        addButton.tap()
        view.tap()
    }    
}

[ ]に要素のアクセシビリティ識別子を追加します。

UIView、UIImageView、UIScrollView

let imageView = app.images["imageView"]
let scrollView = app.scrollViews["scrollView"]
let view = app.otherElements["view"]

UILabel

let label = app.staticTexts["label"]

UIStackView

let stackView = app.otherElements["stackView"]

UITableView

let tableView = app.tables["tableView"]

UITableViewCell

let tableViewCell = tableView.cells["tableViewCell"]

UITableViewCell要素

let tableViewCellButton = tableView.cells.element(boundBy: 0).buttons["button"]

UICollectionView

let collectionView = app.collectionViews["collectionView"]

UIButton、UIBarButtonItem

let button = app.buttons["button"]
let barButtonItem = app.buttons["barButtonItem"]

UITextField

  • 通常のUITextField
let textField = app.textFields["textField"]
  • パスワードUITextField
let passwordTextField = app.secureTextFields["passwordTextField"]

UITextView

let textView = app.textViews["textView"]

UISwitch

let switch = app.switches["switch"]

アラート

let alert = app.alerts["About yourself"] // Title of presented alert

UIテスト中にアニメーションを無効にする

テストでは、 setUp追加することでアニメーションを無効にすることができます:

    app.launchEnvironment = ["animations": "0"]

ここで、 appはXCUIApplicationのインスタンスです。

実行中にランチと終了のアプリケーション

テストのためのランチアプリケーション

override func setUp() {
    super.setUp()

    let app = XCUIApplication()

    app.launch()
}

アプリケーションの終了

func testStacOverFlowApp() {
    
    app.terminate()
}

デバイスを回転する

デバイスは、 XCUIDevice.shared().orientation orientationを変更することで回転できますXCUIDevice.shared().orientation

XCUIDevice.shared().orientation = .landscapeLeft
XCUIDevice.shared().orientation = .portrait


Modified text is an extract of the original Stack Overflow Documentation
ライセンスを受けた CC BY-SA 3.0
所属していない Stack Overflow