Для своего приложения я пытаюсь запустить базовый тест пользовательского интерфейса на предмет того, остается ли представление фиксированным в своей ориентации при вращении фактического устройства. Я знаю, как имитировать физическое вращение (используя UIDeviceOrientation), но есть ли способ получить ориентацию фактического вида?
В тестировании пользовательского интерфейса Xcode можно получить ориентацию вида
comment
Поскольку представления на самом деле не имеют понятия ориентации, совсем не ясно, о чем вы пытаетесь спросить.
- person David Berry   schedule 10.03.2016
comment
Думаю, вопрос можно было бы перефразировать. Можете ли вы на самом деле проверить, что ваше приложение НЕ вращается, когда ориентация устройства изменяется на .Landscape? Если ДА, то как? Кстати, я сам изучаю это.
- person Alexandros Spyropoulos   schedule 25.05.2016
Ответы (2)
Вы можете получить ориентацию, используя эту строку
XCUIDevice.sharedDevice().orientation
person
Tharak
schedule
10.03.2016
Я думаю, вопрос в том, можете ли вы получить ориентацию вида, это имитирует ориентацию устройства. То есть пользователь хочет убедиться, что ориентация вида (бессмысленная концепция, но...) остается неизменной независимо от ориентации устройства.
- person David Berry; 10.03.2016
Он сказал, что может имитировать вращение, поэтому ему нужно проверить текущую ориентацию, смоделировать вращение и проверить, изменилась ли ориентация.
- person Tharak; 10.03.2016
Извините, я новичок в iOS-разработке. Вы правы, Давид, именно об этом я и спрашиваю. Как вы думаете, позволяет ли тестирование пользовательского интерфейса проводить такие тесты?
- person will3321; 11.03.2016
этот тест работает, но вы не видите, как происходит вращение
XCUIDevice.sharedDevice().orientation = .LandscapeLeft XCTAssertTrue(XCUIDevice.sharedDevice().orientation == .LandscapeLeft) XCUIDevice.sharedDevice().orientation = .Portrait XCTAssertTrue(XCUIDevice.sharedDevice().orientation == .Portrait)
- person Tharak; 14.03.2016
Ответ неуместен и вводит в заблуждение. Вопрос касается приложения, представления, а не устройства.
- person Alexandros Spyropoulos; 25.05.2016
Я нашел обходной путь. Это не здорово, но это делает работу. Я постараюсь найти более элегантный способ, если он есть.
Что вам нужно сделать, так это найти интерфейс и проверить его ориентацию. В моем случае я хочу проверить, что пользовательский интерфейс остается в ориентации .Portrait, когда мое устройство поворачивается в .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))
}
person
Alexandros Spyropoulos
schedule
25.05.2016
Это не работает для меня. Я все еще получаю .LandscapeLeft
- person Edward Ford; 21.11.2017