Имитировать изменения ориентации в iOS для целей тестирования

Я хотел бы проверить способность моего приложения обрабатывать изменения ориентации (портрет / пейзаж). В настоящее время я использую KIF, и, насколько я знаю, он не может этого сделать. Есть ли способ имитировать события вращения программным образом для симулятора iOS?

Меня не волнует, если это какой-то недокументированный частный API или хак, потому что это будет работать только во время тестирования и не будет частью производственных сборок.

Вот шаг к достижению этого:

+ (KIFTestStep*) stepToInterfaceOrientation: (UIInterfaceOrientation) toInterfaceOrientation { NSString* orientation = UIInterfaceOrientationIsLandscape(toInterfaceOrientation) ? @"Landscape" : @"Portrait"; return [KIFTestStep stepWithDescription: [NSString stringWithFormat: @"Rotate to orientation %@", orientation] executionBlock: ^KIFTestStepResult(KIFTestStep *step, NSError *__autoreleasing *error) { if( [UIApplication sharedApplication].statusBarOrientation != toInterfaceOrientation ) { UIDevice* device = [UIDevice currentDevice]; SEL message = NSSelectorFromString(@"setOrientation:"); if( [device respondsToSelector: message] ) { NSMethodSignature* signature = [UIDevice instanceMethodSignatureForSelector: message]; NSInvocation* invocation = [NSInvocation invocationWithMethodSignature: signature]; [invocation setTarget: device]; [invocation setSelector: message]; [invocation setArgument: &toInterfaceOrientation atIndex: 2]; [invocation invoke]; } } return KIFTestStepResultSuccess; }]; } 

Примечание. Держите устройство на столе, или обновления акселерометра повернут назад.

Чтобы смоделировать изменение ориентации в UI Automation, вы можете использовать метод setDeviceOrientation для UIATarget. Пример:

 UIATarget.localTarget().setDeviceOrientation(UIA_DEVICE_ORIENTATION_LANDSCAPELEFT); 

Метод нуждается в постоянном параметре «deviceOrientation». Больше информации здесь

Этот 100% работает на реальном устройстве iOS. Я не уверен в симуляторе.

Я не знаю, что вы подразумеваете под программным путем, но если вы используете библиотеку UIAutomation, предоставляемую apple, а также шаблон Automation приложения Instruments, вы можете моделировать различные ориентации, поддерживаемые iPhone.

Почему это программно? Симулятор делает именно то, что вы хотите, он проверяет способность приложений обрабатывать изменения ориентации.

В симуляторе либо воспользуйтесь верхним меню «Оборудование»> «Повернуть влево / вправо», либо «Удерживайте нажатой» и используйте стрелки влево и вправо.

  • Как обрабатывать медленные сетевые подключения с помощью UIAutomation
  • Если «Идентификатор специальных возможностей» предназначен для тестов автоматизации UI, почему он включен в локализованные ресурсы?
  • как я могу улучшить iPhone UI Automation?
  • Как я могу имитировать жестом салфетки программным путем?
  • Использование инструментов для тестирования приложения iOS без использования исходного кода для приложения
  • Могу ли я сравнивать области экрана с ссылками на изображения в сценариях автоматизации пользовательского интерфейса?
  • Вызов webservice из UIAutomation
  • Как проверить имя метки в представлении таблицы с помощью инструментов iOS?
  • запустить UI-тест xcode 7 на устройстве
  • Как получить доступ к изображениям в UIATablecell
  • iOS / UI Automation: UIAActionSheet не имеет возможности манипулировать кнопками
  • Interesting Posts

    UIView с закругленным углом и границей имеет неправильный цвет края

    Какое поведение гарантируется в Grand Central Dispatch в Objective-C?

    Платформа с платой CAShapeLayer

    iPhone UITableView: как удалить интервал между разделами в таблице стиля группы?

    Сделать запрос Http с сокетами

    Как сделать Regex в Objective-C

    Нечасовая авария CoreData "nilOutReservedCurrentEventSnapshot"

    Автоматическая компоновка с навигационной панелью и контроллером просмотра (iOS 7)

    В iOS, Gamekitframework быстрее, чем структура multipeerconnectivity при отправке сообщений?

    Parse Issue в Xcode 4.6.3 – «Ожидаемый тип» – Не удается найти ошибку

    Преобразование необязательной строки в double в Swift 3

    Как использовать разные шрифты для разных языков в приложении iOS?

    Вид контейнера с динамической высотой внутри UIScrollView с автоматической компоновкой

    Как обрабатывать медленные сетевые подключения с помощью UIAutomation

    Как объединить или объединить массивы в Swift?

    Давайте будем гением компьютера.