2015-05-02 9 views
14

Sto provando a scrivere un test di accettazione in KIF su un'app che richiede autorizzazioni di notifica locali abbastanza presto. Sfortunatamente per ragioni di sicurezza del simulatore iOS it isn't possible to automate accepting iOS permission alerts using KIF. Per https://stackoverflow.com/a/28443743/62 sembra che ci siano modi per disattivare gli avvisi di autorizzazione per posizione, rubrica, calendario e foto, ma non sono riuscito a trovare un modo per disabilitare il permesso di notifica locale. Ho provato l'approccio dell'autorizzazione dalla domanda collegata ma nessuno dei seguenti tasti ha funzionato:Rimozione avviso di autorizzazione iOS per le notifiche locali quando si esegue l'applicazione nel simulatore

kTCCServiceNotifications 
kTCCServiceNotification 
kTCCServiceLocalNotification 
kTCCServiceLocalNotifications 

Altre idee? Per ora sto lavorando a questo problema modificando il mio codice di produzione per disabilitare in modo condizionale le notifiche locali quando i test di accettazione sono in esecuzione, ma idealmente non dovrei farlo.

+0

domanda veloce, dove hai trovato quelle chiavi? hai un link? –

+0

Non ho trovato quelle chiavi, le ho indovinate, ma non funzionano. Se guardi https://groups.google.com/forum/#!topic/kif-framework/xayP4VVBPyg vedrai le chiavi che funzionano. –

risposta

2

Sfortunatamente, non penso che in un test di automazione ci sia un buon modo per farlo. So che persino il ripristino del simulatore non è sufficiente a ripristinare le autorizzazioni. Progetterei i tuoi test per non testare una chiamata di sistema, ma il tuo codice applicazione.

Un modo per verificare diverse funzionalità in base al fatto che l'utente consenta le notifiche consiste nell'estrarre la chiamata per verificare le autorizzazioni e quindi stubare questo metodo nel test. Questo metodo sarebbe la migliore pratica poiché l'obiettivo non è quello di verificare se iOS funziona ma se il codice dell'applicazione è corretto.

0
permesso

notifica può essere soppresso con la concessione di permessi in applicationState.plist:

  • eseguire la vostra applicazione su un simulatore e premete su "ok" per qualsiasi autorizzazione popups
  • navigare a "~/Library/Developer /CoreSimulator/Devices/{$deviceId}/data/Library/BackBoard/applicationState.plist"
  • Sostituire l'applicationState.plist del simulatore di test UI con quanto sopra esposto uno prima di bootstrap che
Problemi correlati