iOS
Test dell'interfaccia utente
Ricerca…
Sintassi
- XCUIApplication () // Proxy per un'applicazione. Le informazioni che identificano l'applicazione sono specificate nelle impostazioni del target Xcode come "Target Application".
- XCUIElement () // Un elemento dell'interfaccia utente in un'applicazione.
Aggiunta di file di test a Xcode Project
Quando si crea il progetto
Dovresti selezionare "Includi test UI" nella finestra di dialogo di creazione del progetto.
Dopo aver creato il progetto
Se ti sei perso il controllo UI target
durante la creazione del progetto, puoi sempre aggiungere il target di prova in un secondo momento.
Setps:
- Mentre il progetto è aperto, vai su
File
->New
->Target
- Trova
iOS UI Testing Bundle
Identificatore di accessibilità
Quando l'accessibilità è abilitata nelle utilità
- Seleziona lo
storyboard
. - Espandi
the Utilities
- Seleziona
Identity Inspector
- Seleziona il tuo elemento nello storyboard
- Aggiungi un nuovo identificatore di accessibilità (in esempio
addButton
)
Quando l'accessibilità è disabilitata nelle utilità
- Seleziona lo
storyboard
. - Espandi
the Utilities
- Seleziona
Identity Inspector
- Seleziona il tuo elemento nello storyboard
- Aggiungi attributo in
User Defined Runtime Attributes
- Per il tipo di
Key Path
:accessibilityIdentifier
- Per
Type
- `String - Per
Value
: nuovo identificatore di accessibilità per il tuo elemento (nellaview
esempio)
Impostazione nel file 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()
}
}
In [ ]
aggiungi identificatore di accessibilità per elemento.
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"]
Elementi 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
- normale UITextField
let textField = app.textFields["textField"]
- password UITextField
let passwordTextField = app.secureTextFields["passwordTextField"]
UITextView
let textView = app.textViews["textView"]
UISwitch
let switch = app.switches["switch"]
avvisi
let alert = app.alerts["About yourself"] // Title of presented alert
Disattiva le animazioni durante il test dell'interfaccia utente
In un test puoi disabilitare le animazioni aggiungendo in setUp
:
app.launchEnvironment = ["animations": "0"]
Dove app
è istanza di XCUIApplication.
Pranzo e terminare l'applicazione durante l'esecuzione
Applicazione del pranzo per i test
override func setUp() {
super.setUp()
let app = XCUIApplication()
app.launch()
}
Termina l'applicazione
func testStacOverFlowApp() {
app.terminate()
}
Ruota i dispositivi
Il dispositivo può essere ruotato cambiando l' orientation
in XCUIDevice.shared().orientation
:
XCUIDevice.shared().orientation = .landscapeLeft
XCUIDevice.shared().orientation = .portrait
Modified text is an extract of the original Stack Overflow Documentation
Autorizzato sotto CC BY-SA 3.0
Non affiliato con Stack Overflow