2015-05-02 3 views
14

Я пытаюсь написать приемочный тест в KIF в приложении, которое запрашивает разрешения на локальное уведомление на ранней стадии. К сожалению, из-за соображений безопасности симулятора iOS it isn't possible to automate accepting iOS permission alerts using KIF. Per https://stackoverflow.com/a/28443743/62 похоже, что есть способы отключить предупреждения о разрешении для местоположения, адресной книги, календаря и фотографий, но я не смог найти способ отключить разрешение локального уведомления. Я попробовал подход с правом доступа из связанного вопроса, но ни один из следующих ключей не работал:Удаление предупреждения о разрешении iOS для локальных уведомлений при запуске приложения в симуляторе

kTCCServiceNotifications 
kTCCServiceNotification 
kTCCServiceLocalNotification 
kTCCServiceLocalNotifications 

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

+0

быстрый вопрос, где вы нашли эти ключи? получил ссылку? –

+0

Я не нашел эти ключи, я догадывался, но они не работают. Если вы посмотрите на https://groups.google.com/forum/#!topic/kif-framework/xayP4VVBPyg, вы увидите ключи, которые работают. –

ответ

2

К сожалению, я не думаю, что в тесте автоматизации есть хороший способ сделать это. Я знаю, что даже сброса симулятора иногда недостаточно, чтобы сбросить разрешения. Я бы разработал ваши тесты, чтобы не тестировать системный вызов, а ваш собственный код приложения.

Один из способов протестировать различные функции, основанные на том, разрешает ли пользователь уведомления, извлекать вызов для проверки разрешений и затем заглушить этот метод при тестировании. Этот метод будет наилучшей практикой, поскольку целью является не тестирование, если iOS работает, но если ваш код приложения верен.

0
разрешение

Уведомление может быть предотвращено путем предоставления разрешения на applicationState.plist:

  • Запустите приложение на тренажере и нажмите на «ОК» для любого разрешения всплывающих окон
  • Перейдите к «~/Library/Developer /CoreSimulator/Devices/{$deviceId}/data/Library/BackBoard/applicationState.plist»
  • Заменить applicationState.plist тестового интерфейса тренажера с приведенной выше, прежде чем самонастройки его

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

  • Нет связанных вопросов^_^