Чтение предпочтений, установленных UIAApplication.setPreferencesValueForKey () UIAutomation на целевом устройстве? - PullRequest
2 голосов
/ 12 февраля 2011

В последние несколько дней я играл с UIAutomation от Apple, пытаясь собрать набор приемочных тестов для разработки приложения, над которым я работаю (в стиле BDD). .).

Одна вещь, с которой я сталкиваюсь, это как установить SUT в заданное состояние, чтобы я мог начать свои тесты, если мне нужно установить какое-то внутреннее состояние для этого. Проблема в том, что среда Apple Javascript не предоставляет никаких функций, которые я мог бы использовать для связи с устройством, кроме как через его интерфейс (я уверен, что это, вероятно, из-за замысла, но иногда это просто нецелесообразно): пока решения типа iCuke или Frank может использовать HTTP для связи с сервером прослушивания, встроенным в целевое приложение, для целей такой связи, в среде UIAutomation прибора ничего подобного сделать невозможно. * * 1007

Глядя на предоставляемые API, я заметил, что в классе UIAApplication есть функция, которая позволяет мне устанавливать значение предпочтения на целевом устройстве ( см. Здесь для получения более подробной информации ): мне пришло в голову, что Я мог бы установить некоторый код на устройстве, которое могло бы использовать KVO для отслеживания шанса на заданный ключ предпочтения, а затем я мог бы использовать его как средство для связи с некоторым специальным вспомогательным кодом, специфичным для теста, в целевом приложении (реагируя, когда значение предпочтения изменено).

Я начал играть, чтобы посмотреть, смогу ли я сделать эту работу, но наткнулся на кирпичную стену, потому что не могу найти способ получить доступ к настройкам, установленным UIAutomation, из целевого приложения. Проблема в том, что настройки, кажется, установлены на уровне домена хоста (то есть они установлены в файле /Library/Preferences/com.mycompany.MyApp), а не в изолированной папке /Library, специфичной для моего приложения.

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

Может ли кто-нибудь пролить свет на то, как я должен получить доступ к настройкам, сохраненным на этом уровне (NSLocalDomain ...) на устройстве iOS?

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

Обновление : есть вероятность, что это ошибка согласно этой теме . Я не могу подтвердить это точно, хотя ..

1 Ответ

0 голосов
/ 11 июня 2012

У меня также есть похожий пост здесь .

Я использую автоматизированный тест для запуска своего приложения, просто запустив его на реальном устройстве iOS (конкретнее iPhone). Однако я также обнаружил, что такая функция, как деактивация в скрипте UIA, не будет работать на реальном устройстве. По какой-то причине автоматизация не может найти кнопку приложения и повторно ввести приложение.

Надеюсь, это поможет!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...