Среда модульного тестирования в XCode для меня является чем-то вроде черного ящика, но из того, что я видел, я считаю, что тесты каким-то образом привязаны к основному приложению, а затем все запускается, выполняя тесты вместо нормальный поток приложения.
Это здорово, потому что позволяет мне отлаживать и запускать тесты как на симуляторе, так и на реальном устройстве. (Я думал, что это невозможно, тесты всегда выполнялись только на симуляторе, что-то изменилось?) Но я заметил, что во время тестирования все приложение действительно работает со всеми наворотами. Это на самом деле нежелательное поведение, поэтому я устанавливаю переменную среды для схемы Test, и если я обнаруживаю переменную в application:didFinishLaunchingWithOptions:
, я пропускаю обычную инициализацию, просто поднимаю фиктивное окно и жду, пока тестовая установка завершится.
Это должно работать так? Есть ли «стандартный» способ определить, что приложение работает в качестве хоста для тестовой установки? (Я использую официальную сборку Xcode 4.3, если это имеет значение.)