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

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

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

4 Solutions collect form web for “Имитировать изменения ориентации в iOS для целей тестирования”

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

+ (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.

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

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

  • Можем ли мы использовать инструменты автоматизации пользовательского интерфейса с iPhone Simulator?
  • При записи с использованием UIAutomation на устройстве он зависает на «Start Capture ...». Прекрасно работает на Simulator
  • запустить UI-тест xcode 7 на устройстве
  • Найти элементы в UIWebView
  • Использование инструментов для тестирования приложения iOS без использования исходного кода для приложения
  • как я могу улучшить iPhone UI Automation?
  • Не удается запустить UIAutomationTest из командной строки
  • Если «Идентификатор специальных возможностей» предназначен для тестов автоматизации UI, почему он включен в локализованные ресурсы?
  • Как проверить свойства элемента в iOS gui automation?
  • Как я могу автоматически протестировать функциональность приложений iOS и Android?
  • Обход профиля разработки для использования инструментов на телефоне с джейлбрейком
  • Interesting Posts

    NSDate – год назад, дилемма

    iOS8 – не отображает пользовательские изображения на вкладке

    Удаление буфера из AVAssetWriter перед выходом в файл

    Как изменить «initwithNibName» в раскадровке?

    AV размытие фона в видео

    Почему tableView: cellForRowAtIndexPath: вызывается в фоновом потоке?

    Получить информацию о iPhone BluetoothDevice (в BluetoothManager)

    Высокопроизводительное копирование данных пикселов RGB на экран в iOS

    Как изменить направление прокрутки в UICollectionView?

    Заголовок раздела UITableView справа, а не по умолчанию слева

    Обнаружение ссылки TTTAttributedLabel не работает с помощью раскадровки

    В чем разница между пользовательским классом и параметром владельца файла в файле xib?

    Кнопка Действие при входе в систему Логин в FBConnect API

    После изменения размера изображения прозрачная часть изображения стала черной

    Можно ли использовать сжатие JPEG для изображений в pdf-файлах, созданных на iOS?

    PhoneC: Разработка iOS проста с помощью XCode, Swift3, UITableView, cocatouch, давайте создадим приложения для iPhone, iPad и Macbook.