수색…


통사론

  • 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 -`문자열
  • 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 = .landscapeLeft
XCUIDevice.shared().orientation = .portrait


Modified text is an extract of the original Stack Overflow Documentation
아래 라이선스 CC BY-SA 3.0
와 제휴하지 않음 Stack Overflow