Ответ 1
Используйте Тесты единиц, чтобы проверить правильность методов в ваших классах. Вы используете их для проверки кода, который вы написали. (См. мой другой пример для настройки простого Unit Test в Xcode.)
Используйте Тесты пользовательского интерфейса, чтобы проверить работоспособность пользовательского интерфейса. Подумайте об этом, как о том, чтобы ваш собственный робот прошел через все нормальные взаимодействия с вашим приложением, что обычный пользователь. Это экономит ваше время на то, чтобы сделать это самостоятельно.
На момент написания этой статьи трудно получить доступ ко многим свойствам компонентов пользовательского интерфейса, но просто пройти тест можно, нажав на них, и проверив их, подтверждает, что они есть.
Пример
Это про самый простой тест настройки и UI, о котором я мог думать: кнопка, которая при нажатии меняет текст метки.
Настройка
- Создайте новый проект в Xcode 7+ для iOS 9.0 +.
- Убедитесь, что включено тестирование пользовательских интерфейсов.
-
Если вы добавляете тесты пользовательского интерфейса в проект, созданный до Xcode 7, см. этот ответ. (Файл > Создать > Целевой > Тест > Cocoa Пакет тестирования Touch UI Testing)
-
Добавить
UILabel
и aUIButton
в раскадровку
-
Создайте @IBOutlet и @IBAction в
ViewController
и измените текстlabel
при нажатииbutton
.import UIKit class ViewController: UIViewController { @IBOutlet weak var label: UILabel! @IBAction func button(sender: AnyObject) { label.text = "Hello" } }
Проведите тест
- Откройте файл YourProjectUITests.
- Поместите ваш курсор в метод
testExample()
. (Вы можете удалить комментарии)
- Нажмите красную кнопку записи
-
В приложении (1) коснитесь метки, (2) нажмите кнопку, а затем (3) снова коснитесь метки. (4) Нажмите кнопку "Запись" еще раз, чтобы остановить запись. Для вас был автоматически создан следующий код:
func testExample() { let app = XCUIApplication() app.staticTexts["Label"].tap() app.buttons["Button"].tap() app.staticTexts["Hello"].tap() }
-
Используйте строки
staticText
в качестве отправной точки для созданияXCTAssert
. Теперь у вас должно быть:func testExample() { let app = XCUIApplication() XCTAssert(app.staticTexts["Label"].exists) app.buttons["Button"].tap() XCTAssert(app.staticTexts["Hello"].exists) }
-
Нажмите алмаз слева, чтобы запустить тест пользовательского интерфейса. Он должен стать зеленым, когда он пройдет.
- Что это! Это показало, что существуют
UIButton
иUILabel
и что текст ярлыка изменился. Если вы хотите, чтобы это не получилось (хорошая идея), вы можете изменить "Hello" на что-то еще.