Skip to content

Instantly share code, notes, and snippets.

@KentarouKanno
Last active February 8, 2017 14:47
Show Gist options
  • Save KentarouKanno/5757e02bbf2fab1211b72ba58bea8766 to your computer and use it in GitHub Desktop.
Save KentarouKanno/5757e02bbf2fab1211b72ba58bea8766 to your computer and use it in GitHub Desktop.

UITesting

★ Applicationを取得

let app = XCUIApplication()

accessibilityIdentifierをコードで設定する

@IBOutlet weak var button: UIButton!

override func viewDidLoad() {
    super.viewDidLoad()
    
    button.accessibilityIdentifier = "Button"
}

★ 端末の方向を上向きに設定

XCUIDevice.shared().orientation = .faceUp

★ デバイスのホームボタン押下操作

XCUIDevice.shared().press(XCUIDeviceButton.home)

★ デバイスのボリュームを操作する

// ボリュームを上げる
XCUIDevice.shared().press(XCUIDeviceButton.volumeUp)

// ボリュームを下げる
XCUIDevice.shared().press(XCUIDeviceButton.volumeDown)

UIButton

★ UIButtonオブジェクトを取得

let button = app.buttons["identifier"]

★ UIButtonをタップ

// シングルタップ
app.buttons["identifier"].tap()

// ダブルタップ
app.buttons["identifier"].doubleTap()

★ UIButtonのタイトルテスト

let title = app.buttons["Button"].label
XCTAssertEqual(title, "ボタン")

UINavigationItem

★ NavigationのBarButtonItemを取得

let barbutton = app.navigationBars["UITestingViewController.View"].buttons["identifier"]

★ Navigationの純正の戻るボタンのタップ

app.navigationBars["UIView"].children(matching: .button).matching(identifier: "Back").element(boundBy: 0).tap()

UITextField

★ UITextFieldの文字列と比較する

let textFieldText = app.textFields["VCTextField"].value as? String
XCTAssertEqual(textFieldText, "0")

★ TextFieldをタップしてキーボードを表示する

let textField = element.children(matching: .textField).element
textField.tap()

★ UITextFieldに文字を入力する

// キーボードを表示してからでないと入力できない

let textField = app.textFields["identifier"]
textField.tap()

// input text
textField.typeText("テキスト")

UISlider

★ UISliderの値を変更する

let slideridSlider = XCUIApplication().sliders["SliderID"]
slideridSlider.adjust(toNormalizedSliderPosition: 0)
slideridSlider.adjust(toNormalizedSliderPosition: 0.5)
slideridSlider.adjust(toNormalizedSliderPosition: 1)        
        

// Sliderをタップ
slideridSlider.tap()

UISwitch

★ SwitchのIDを指定しない場合のSwitchの切り替え

app.switches["1"].tap()
app.switches["0"].tap()

★ SwitchのIDを指定した場合のSwitchの切り替え

let switchObj = XCUIApplication().switches["Identifier"]
switchObj.tap()
switchObj.tap()
switchObj.tap()

UITableView

★ セルのn番目をタップする

let app = XCUIApplication()
let cell = app.tables.cells.element(boundBy: 4)

// tap cell
cell.tap()

// セルのIDを指定した場合
XCUIApplication().tables.cells.matching(identifier: "CellID").element(boundBy: 4).tap()

// IDとtextLabel?.textを指定した場合
XCUIApplication().tables.cells.matching(identifier: "CellID").staticTexts[textLabel?.text].tap()

// textLabel?.textのみを指定した場合1
XCUIApplication().tables.cells.staticTexts[textLabel?.text].tap()

// textLabel?.textのみを指定した場合2
XCUIApplication().tables.staticTexts[textLabel?.text].tap()

★ UITableViewのセルの数をテスト

let app = XCUIApplication()
XCTAssertEqual(5, app.tables.cells.count)

★ XCUIElementTypeQueryProvider

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment