2015-05-02 4 views
14

Ich versuche, einen Abnahmetest in KIF für eine App zu schreiben, die ziemlich früh nach lokalen Benachrichtigungsberechtigungen fragt. Leider aufgrund von iOS Simulator Sicherheitsgründen it isn't possible to automate accepting iOS permission alerts using KIF. Pro https://stackoverflow.com/a/28443743/62 sieht es so aus, als ob es Möglichkeiten gibt, die Erlaubnisalarme für Standort, Adressbuch, Kalender und Fotos zu deaktivieren, aber ich konnte keine Möglichkeit finden, die lokale Benachrichtigungsberechtigung zu deaktivieren. Ich habe versucht, den Anspruch Ansatz aus der verknüpften Frage, aber keiner der folgenden Schlüssel funktioniert:iOS-Berechtigungswarnung für lokale Benachrichtigungen entfernen, wenn App im Simulator ausgeführt wird

Andere Ideen? Momentan arbeite ich daran, indem ich meinen Produktionscode ändere, um lokale Benachrichtigungen zu deaktivieren, wenn Akzeptanztests laufen, aber im Idealfall würde ich das nicht tun müssen.

+0

Bootstrapping schnelle Frage, wo hast du diese Schlüssel gefunden? einen Link bekommen? –

+0

Ich habe diese Schlüssel nicht gefunden, ich vermutete sie, aber sie funktionieren nicht. Wenn Sie sich https://groups.google.com/forum/#!topic/kif-framework/xayP4VVBPyg ansehen, werden Ihnen die funktionierenden Schlüssel angezeigt. –

Antwort

2

Leider glaube ich nicht in einem Automatisierungstest gibt es einen guten Weg, dies zu tun. Ich weiß, dass selbst das Zurücksetzen des Simulators manchmal nicht ausreicht, um Berechtigungen zurückzusetzen. Ich würde Ihre Tests so gestalten, dass Sie keinen Systemaufruf testen, sondern Ihren eigenen Anwendungscode.

Eine Möglichkeit, verschiedene Funktionen basierend darauf zu testen, ob der Benutzer Benachrichtigungen zulässt, besteht darin, den Aufruf zu extrahieren, um nach Berechtigungen zu suchen, und diese Methode dann im Test auszugeben. Diese Methode wäre die beste Vorgehensweise, da nicht getestet werden soll, ob iOS funktioniert, aber ob der Anwendungscode korrekt ist.

0

Mitteilung Genehmigung durch die Gewährung Erlaubnis in applicationState.plist unterdrückt werden: auf einem Simulator und tippen Sie auf "ok"

  • Führen Sie Ihre App für jede Erlaubnis
  • navigate Popups
  • auf „~/Library/Entwickler /CoreSimulator/Devices/{$deviceId}/data/Library/BackBoard/applicationState.plist“
  • Ersetzen sie den applicationState.plist des UI-Test-Simulator mit dem oben ein, bevor es
Verwandte Themen