Есть ли хороший учебник по cocoa сенсорному автоматическому тестированию пользовательского интерфейса?
Как правило, я обнаружил, что почти все мои самые важные тестовые примеры для разработки iPhone вращаются вокруг тестирования пользовательского интерфейса, а не бизнес-логики или тестирования данных. Я не очень хорошо знаком с автоматическим тестированием пользовательского интерфейса в среде XCode. Может ли кто-нибудь указать мне хороший учебник или книгу?
UPDATE
Этот вопрос был написан несколько лет назад, а тестирование пользовательского интерфейса прошло с тех пор. Использование UI Automation по-прежнему является опцией, но KIF Framework - это гораздо лучшее решение для функционального тестирования в настоящее время, IMO.
На странице KIF github:
KIF, который означает Keep It Functional, является интеграционным тестом iOS фреймворк. Это позволяет легко управлять приложениями iOS, используя атрибуты доступности, доступные ОС для тех, кто имеет нарушения зрения.
KIF строит и выполняет тесты, используя стандартное тестирование XCTest цель. Тестирование проводится синхронно в основном потоке (работает цикл запуска, чтобы заставить пройти время), что позволяет логики и композиции. Это также позволяет KIF использовать преимущества Xcode 5 Test Navigator, инструменты построения командной строки и тест Bot отчеты.
Ответы
Ответ 1
Лучше всего использовать инструмент автоматизации UI, который дебютировал с iOS 4.0. Это может быть сценарий для тестирования многих аспектов вашего пользовательского интерфейса.
Apple предоставляет отличное введение в этот инструмент в видео для WWDC 2010 сеанса 306 - "Автоматизация тестирования пользовательского интерфейса с помощью инструментов". Я демонстрирую, как настраивать скрипты и выполнять тестирование в видео для сеанса "Тестирование" моего расширенного курса развития iOS на iTunes U. Мои заметки об автоматизации пользовательского интерфейса этого класса, включая образцы сценариев, можно найти здесь .
Кроме того, вы можете посмотреть статью Джеймса Тернера "Как использовать UIAutomation для создания тестов iPhone UI" и Alex Vollmer "Работа с UIAutomation".
Ответ 2
Что вы действительно пытаетесь проверить? Я согласен с тем, что взаимодействие с просмотром просмотра важно, но обнаруживаю, что обычно я могу построить тест единицы или интеграции, который проверяет представление или представление и его контроллер для проверки этого поведения, не пытаясь управлять всем приложением через пользовательский интерфейс.
Например, http://blog.carbonfive.com/2010/03/10/testing-view-controllers/ содержит примеры тестов, которые проверяют, что представления UIKit привязаны к IBActions или имеют соответствующий делегат, и что контроллер отвечает на эти действия или делегировать сообщения соответствующим образом. Нет необходимости на самом деле управлять UIButton
или UITableView
, так как я хочу верить, что эти классы действительно работают, и вместо этого нужно только проверить мое использование и конфигурацию.
Для пользовательских компонентов просмотра вы можете отправлять сообщения UIResponder
непосредственно в своих тестах и утверждать, что они ведут себя так, как ожидалось, снова, не управляя всем пользовательским интерфейсом.
Можете ли вы привести пример такого поведения, которое вы хотите проверить?
Ответ 3
Эта ссылка может быть полезна https://developer.apple.com/library/mac/documentation/DeveloperTools/Conceptual/InstrumentsUserGuide/UsingtheAutomationInstrument/UsingtheAutomationInstrument.html