iOS
Тестирование пользовательского интерфейса
Поиск…
Синтаксис
- XCUIApplication () // Прокси для приложения. Информация, идентифицирующая приложение, указана в целевых настройках Xcode как «Target Application».
- XCUIElement () // Элемент пользовательского интерфейса в приложении.
Добавление тестовых файлов в проект Xcode
При создании проекта
Вы должны проверить «Включить тесты пользовательского интерфейса» в диалоговом окне создания проекта.
После создания проекта
Если вы пропустили проверку 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
Отключить анимацию во время тестирования пользовательского интерфейса
В тесте вы можете отключить анимацию, добавив в setUp
:
app.launchEnvironment = ["animations": "0"]
Где app
является экземпляром XCUIApplication.
Запуск и завершение приложения во время выполнения
Заявка на обед для тестирования
override func setUp() {
super.setUp()
let app = XCUIApplication()
app.launch()
}
Завершение заявки
func testStacOverFlowApp() {
app.terminate()
}
Поворот устройств
Устройство можно повернуть, изменив 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