2016-03-09 5 views
3

Для моего приложения Я пытаюсь запустить базовый тест пользовательского интерфейса, независимо от того, остается ли изображение неподвижным в своей ориентации, когда фактическое устройство повернуто. Я знаю, как имитировать физическое вращение (используя UIDeviceOrientation), но есть ли способ получить ориентацию фактического представления?В Xcode UI Testing можно получить ориентацию вида

+0

Поскольку у взглядов действительно нет концепции ориентации, совсем не ясно, что вы пытаетесь спросить. –

+0

Я думаю, что вопрос можно перефразировать. Можете ли вы проверить, что ваше приложение не вращается, когда ориентация устройства изменена на .Landscape? Если ДА, то как? BTW Я сам изучаю это. –

ответ

0

Вы можете получить ориентацию с помощью этой линии

XCUIDevice.sharedDevice().orientation 
+0

Я думаю, что вопрос в том, можете ли вы получить ориентацию вида, это получает имитированную ориентацию устройства. То, что пользователь хочет сделать, это убедиться, что ориентация вида (бессмысленная концепция, но ...) остается неизменной независимо от ориентации устройства. –

+0

Он сказал, что он может имитировать поворот, поэтому он должен проверить текущую ориентацию, имитировать поворот и проверить, изменилась ли ориентация. – Tharak

+0

К сожалению, я новичок в iOS dev. Вы правы, Давид, вот что я прошу. Считаете ли вы, что тестирование пользовательского интерфейса допускает такой тест? – will3321

0

Я нашел обходной путь. Это не здорово, но это делает работу. Я попытаюсь найти более элегантный способ, если он есть.

Что вам нужно сделать, это найти интерфейс и проверить его ориентацию. В моем случае я хочу проверить, что пользовательский интерфейс остается в .Портретной ориентации, когда мое устройство повернуто к .Landscape.

func testSPSCLaunchScreenLandscape() { 
    // Use recording to get started writing UI tests. 
    // Use XCTAssert and related functions to verify your tests produce the correct results. 
    XCUIDevice.sharedDevice().orientation = .LandscapeLeft 
    XCTAssert(UIInterfaceOrientationIsPortrait(UIApplication.sharedApplication().statusBarOrientation)) 
} 
+0

Это не работает для меня. Я все еще получаю .LandscapeLeft –

Смежные вопросы