Имитировать изменения ориентации в 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.

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

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

  • Не удается запустить UIAutomationTest из командной строки
  • Отправка приложения в фоновый режим и повторное запуск его из ретентатов в XCTest
  • Автоматизация пользовательского интерфейса iOS. Не все элементы отображаются при выполнении logElementTree
  • Автоматизация пользовательского интерфейса, как выполнить жестов
  • Xcode: Автоматизация пользовательского интерфейса: waitForValid ()
  • Программировать включение / выключение Wi-Fi на реальном устройстве iOS с помощью автоматизации пользовательского интерфейса
  • Как обмануть службу определения местоположения с помощью KIF-рамки
  • Поиск учебника об автоматизации реальных iOS-устройств с Appium
  • запуск сценария UIAutomation во многих маках?
  • Отключение сети на iPad во время тестирования UIAutomation
  • Попытки использовать UIButton в UITableViewCell с использованием автоматизации пользовательского интерфейса завершаются неудачей с «не могут быть задействованы»,
  • Interesting Posts

    NSFetchedResultsController с разделами, созданными первой буквой строки

    UITextView как собственный делегат означает бесконечный цикл

    Переход UIViewWithView отбрасывание настроек слоя

    Проблема с автоопределением UIImageView в UICollectionViewCell на iOS7, но на iOS8 все в порядке

    Как управлять воспроизведением и паузой AVPlayer из заблокированного экрана. И как установить образ приложения на заблокированном экране

    Я не могу включить параметр Push Notification

    Устранять отклонения результатов на пустом экране

    UIDeviceOrientation ipad

    Как показать 2 настраиваемых ячейки в UITableView

    Вращение Arcball с кватернионами (с использованием iOS GLKit)

    изменение изображения во время перевода

    Xcode 8 "права доступа aps-environment отсутствуют в подписке приложения" on submit

    Как показать modalviewcontroller над вкладкой

    Как проверить, имеет ли пользователь действительный Auth Session Firebase iOS?

    Разработка приложения Computer Vision с iOS

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