iOS
Test de l'interface utilisateur
Recherche…
Syntaxe
- XCUIApplication () // Proxy pour une application. Les informations identifiant l'application sont spécifiées dans les paramètres cibles de Xcode comme "Application cible".
- XCUIElement () // Un élément d'interface utilisateur dans une application.
Ajout de fichiers de test à un projet Xcode
Lors de la création du projet
Vous devez cocher "Inclure les tests d'interface utilisateur" dans la boîte de dialogue de création de projet.
Après avoir créé le projet
Si vous n'avez pas vérifié la UI target
lors de la création du projet, vous pouvez toujours ajouter une cible de test ultérieurement.
Setps:
- Alors que le projet est ouvert, allez dans
File
->New
->Target
- Rechercher un ensemble de
iOS UI Testing Bundle
Identifiant d'accessibilité
Lorsque l'accessibilité est activée dans les utilitaires
- Sélectionnez le
storyboard
. - Développez
the Utilities
- Sélectionner un
Identity Inspector
- Sélectionnez votre élément sur le storyboard
- Ajouter un nouvel identifiant d'accessibilité (par exemple
addButton
)
Lorsque l'accessibilité est désactivée dans les utilitaires
- Sélectionnez le
storyboard
. - Développez
the Utilities
- Sélectionner un
Identity Inspector
- Sélectionnez votre élément sur le storyboard
- Ajouter un attribut dans les attributs
User Defined Runtime Attributes
- Pour le type de
Key Path
-accessibilityIdentifier
- Pour le
Type
- `String - For
Value
- nouvel identifiant d'accessibilité pour votre élément (dans laview
exemple)
Configuration dans le fichier 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()
}
}
Dans [ ]
ajoutez un identifiant d'accessibilité pour l'élément.
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"]
Éléments 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 normal
let textField = app.textFields["textField"]
- mot de passe UITextField
let passwordTextField = app.secureTextFields["passwordTextField"]
UITextView
let textView = app.textViews["textView"]
UISwitch
let switch = app.switches["switch"]
Des alertes
let alert = app.alerts["About yourself"] // Title of presented alert
Désactiver les animations lors des tests de l'interface utilisateur
Dans un test, vous pouvez désactiver les animations en ajoutant dans setUp
:
app.launchEnvironment = ["animations": "0"]
Où app
est l'instance de XCUIApplication.
Déjeuner et terminer l'application pendant l'exécution
Demande de déjeuner pour les tests
override func setUp() {
super.setUp()
let app = XCUIApplication()
app.launch()
}
Application de terminaison
func testStacOverFlowApp() {
app.terminate()
}
Faire pivoter les appareils
Le périphérique peut être XCUIDevice.shared().orientation
en modifiant l' orientation
dans XCUIDevice.shared().orientation
XCUIDevice.shared().orientation = .landscapeLeft
XCUIDevice.shared().orientation = .portrait
Modified text is an extract of the original Stack Overflow Documentation
Sous licence CC BY-SA 3.0
Non affilié à Stack Overflow