2016-11-17 3 views
2

Ich schreibe XCTest App-Tests, die einige UIViewControllers durch den Aufruf presentViewController auf dem UIApplicationrootViewController testen.XCTest App Tests und Berechtigungen Warnungen

Dies funktioniert einwandfrei, außer für Berechtigungsdialoge. Einige der UIViewControllers machen das System pop Berechtigungen Dialoge für Dinge wie Kamera oder Mikrofon zugreifen. Ich bin mir nicht sicher, wie ich sie entlassen soll.

Wenn dies ein UI-Test wäre, könnte ich und tap die Warnung weg verwenden.

Allerdings bin ich mir nicht sicher, wie dies funktioniert. Kann eine App die UI-Testfunktionen testen?

+1

Hallo, hast du einen Weg gefunden, das Problem zu lösen? – DrPatience

+0

Es scheint, dass wir Dependency Injection (DI) und/oder Mock-Klassen verwenden müssen, um dies zu erreichen. Dieser [Lynda.com Kurs] (https://www.lynda.com/iOS-tutorials/Swift-Writing-Testable-Code/590829-2.html), veröffentlicht am 24.05.2017 auf der letzten Seite, diskutiert beides. (Der Kurs ist möglicherweise kostenlos als Einführung zu Lynda.com oder über Ihre lokale Bibliothek verfügbar.) – leanne

Antwort

1

in Xcode ui Test System Pop Berechtigungen Dialoge zugreifen zu können, benutzen Sie den folgenden Code:

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

Hoffnung, das wird helfen, und wenn Sie keine Verwirrung haben, lassen Sie es mich wissen.

+0

'addUIInterruptionMonitorWithDescription' scheint nicht zu blinken, wenn Sie nicht in einem UI-Test sind – paleozogt

Verwandte Themen