Meine iOS-App hat derzeit ein Implementierungsziel von iOS 7 (obwohl mein System den iOS 9.2-Simulator ausführt) und Links zu den Frameworks AddressBook, AddressBookUI und CoreLocation. Ich habe eine Reihe von Swift UI-Tests in Xcode 7 (nicht in Instruments). Wenn ein Nutzer meine App zum ersten Mal nutzt, werden sie aufgefordert, während der Laufzeit der App auf ihre Kontakte und deren Standort zuzugreifen. Da dies eine Menge Code erfordert, der perfekt ausgeführt werden muss, würde ich gerne alle möglichen Ergebnisse automatisieren und sicherstellen, dass die Benutzeroberfläche im gewünschten Zustand ist.Kann ich die Kontakt- und Standortberechtigungseinstellungen des Simulators für meine App zurücksetzen, um ein erstmaliges Nutzungsszenario zu simulieren?
Kann ich den Xcode UI-Test verwenden, um die Einstellungen des Simulators für den Zugriff auf Kontakte und Standorte zurückzusetzen? Zum Beispiel könnte ich dies in der setUp()
Funktion innerhalb meiner Testfallklasse implementieren. Ich habe einige Anleitungen darüber gefunden, wie ich auf die Dialoge reagieren soll, aber bevor ich zu diesem Punkt komme, muss ich den Zustand simulieren, in dem die Berechtigungen angefordert werden. Here's a question that explains how to respond to such an alert.
Danke! Bis jetzt habe ich die UI-Tests trotzdem implementiert, mit dem Vorbehalt, dass der Simulator zuerst einen manuellen Reset für gültige Ergebnisse benötigt. Ich kann diese Auflistung (eine Oberklasse mit gemeinsamen vars und funcs und vier Unterklassen zum Behandeln von Warnungen und Verifizieren von Ergebnissen) aus dem Testziel ausschließen und aktivieren und manuell ausführen, wenn dies erforderlich ist. Das Ziel der Kern-UI-Tests konzentriert sich dann auf Tests, die vollständig automatisiert sind und von denen erwartet wird, dass sie immer bestehen. Ich werde den Bug ablegen, aber erwarte, dass er nicht repariert wird (obwohl ich mir einen einfachen Sandbox-Ansatz vorstellen kann). Ich muss auch eine bessere Unit-Test-Abdeckung anstreben. – bneely