2. 2
На повестке дня
• iOS UI Testing
– Добавлено в Xcode 7 для iOS 9+
• Фреймворк KIF
– Первый релиз в сентябре 2013
– Текущая версия в сентябре 2015
– > 3 500 ★ на GitHab
@trofmary #sqadays18
3. 3
iOS UI Testing
Достоинства:
• Интеграция в среду разработки и поддержка Apple
• Killer feature – record & play
Недостатки:
• Нет официальной справки
• Нет доступа к runtime-объектам приложения
• Доступна только для iOS 9+
• Требует отдельного типа target
@trofmary #sqadays18
7. 7
KIF
Достоинства:
• Все возможности обычных unit-тестов
• Обращение к элементам как через runtime, так и через accessibility labels
Недостатки:
• Сторонняя библиотека
• Отсутствие record & play
@trofmary #sqadays18
8. 8
KIF. Пример обращения
через UIAccessibility
• Обращение по accessibilityLabel
[tester tapViewWithAccessibilityLabel:buttonName];
• Обращение к элементу CollectionView
[tester tapItemAtIndexPath:
[NSIndexPath indexPathForRow:11
inSection:0
inCollectionViewWithAccessibilityIdentifier:collectionViewName];
@trofmary #sqadays18
9. 9
KIF. Пример обращения
через runtime-объекты
SwipeView *swipeView = (SwipeView*)[tester
waitForViewWithAccessibilityLabel:MAIN_SWIPE_VIEW];
ourSwipeView *ctr;
if ([swipeView.nextResponderisKindOfClass:ourSwipeView.class])
ctr = (ourSwipeView *)swipeView.nextResponder;
[ctr swipeView:swipeView didSelectItemAtIndex:1];
@trofmary #sqadays18
11. 11
Заключение
● Автотестам для iOS приложений — ДА!
● Выбор используемой технологии обусловлен
проектом и зрелостью конкретной библиотеки
● В любой непонятной ситуации дружи с
разработчиком☺
@trofmary #sqadays18
12. 12
Дополнительные материалы
● Статья канадского iOS разработчика Greg Heo по
использованию KIF
● Обзор iOS UI Testing
● Неофициальный reference по XCTest
@trofmary #sqadays18