Вы не можете имитировать нажатие кнопки «Домой», но вы можете заставить приложение выйти, как если бы оно было.Вызов [[UIApplication sharedApplication] terminate];
приведет к прекращению или (в случае iOS 4.x) фонового приложения.Однако вы не сможете перезапустить приложение с помощью UIAutomation.
Вы можете попробовать UIAutomation в сочетании со сценарием записи экрана, который позволяет воспроизводить движения мыши и щелчки.Это позволит вам напрямую взаимодействовать с симулятором для таких вещей, как нажатие кнопок «Домой» и нажатий значков приложений.
В качестве альтернативы вы можете получить «достаточно хорошее» тестирование, используя UIATarget
класс .Согласно документам,
Класс UIATarget представляет высокоуровневые элементы пользовательского интерфейса тестируемой системы (SUT), то есть ваше приложение, iOS и подключенныйустройство, на котором они работают.Ваши тестовые сценарии, написанные на JavaScript и работающие в сочетании с инструментом автоматизации пользовательского интерфейса, используют этот класс и связанные с ним классы UIA для проверки SUT и регистрации результатов.
Используя UIATarget.localTarget().deactivateAppForDuration(seconds);
, вы можете создать фон для своего приложенияв течение n секунд.
Используйте этот метод для проверки смещения вашего приложения в фоновый контекст выполнения и из него.Обратите внимание, что приложения, созданные с использованием iOS SDK 4.0 или более поздней версии и работающие в iOS 4.0 и более поздних версиях, не обязательно завершаются, когда пользователь нажимает кнопку «Домой».См. Руководство по программированию приложений iOS для деталей многозадачности и контекста фонового выполнения.