2016-11-17 3 views
2

Я пишу тесты приложений XCTest, которые тестируют UIViewControllers по телефону presentViewController на UIApplicationrootViewController.Проверки приложений и разрешений на приложения XCTest

Это прекрасно работает, за исключением диалогов с разрешениями. Некоторые из UIViewControllers делают диалоговые окна разрешений по умолчанию для доступа к камерам или микрофонам. Я не знаю, как их уволить.

Если это был тест UI, я мог бы использовать addUIInterruptionMonitorWithDescription и tap оповещение.

Однако я не уверен, как это сделать. Могут ли тесты тестирования пользовательского интерфейса тестирования приложений?

+1

Привет, вы выяснили способ решения проблемы? – DrPatience

+0

Похоже, что для этого нужно использовать классы Injection (DI) и/или Mock-зависимостей. Этот [Lynda.com курс] (https://www.lynda.com/iOS-tutorials/Swift-Writing-Testable-Code/590829-2.html), выпущенный 5/24/2017 на последнем представлении, обсуждает оба. (Курс может быть бесплатным для входа в Lynda.com или через вашу локальную библиотеку.) – leanne

ответ

1

В тесте Ui Xcode, чтобы получить доступ к системе разрешений поп-диалогам, используйте следующий код:

self.addUIInterruptionMonitorWithDescription("your alert text", handler: { (alert) -> Bool in 
    yourAlertElement.tap() 
    return true 
    }) 

Надеется, что это поможет, и если у вас есть какая-либо путаница, дайте мне знать.

+0

'addUIInterruptionMonitorWithDescription', похоже, не срабатывает, если не в тесте пользовательского интерфейса – paleozogt

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