Меня смущает способность Xcode4 запускать тесты приложений в iOS Simulator.
С одной стороны, в собственной документации Apple говорится, что тесты приложений можно запускать в симуляторах.С другой стороны, я прочитал здесь форумы, и кажется, что большинство людей считают иначе, что тесты приложений можно запускать только на устройстве.
Если последнее верно, пожалуйста, включите ссылку, чтобы документировать это.Я не смог ничего найти.
В любом случае, из Руководство по разработке приложений для iOS: Приложения для модульного тестирования :
Listing 6-2 Transcript of an iOS Simulator-based application unit-test run
, а также
Note: Although Xcode can run logic and application unit tests in simulators, Xcode cannot run logic unit tests on devices. Therefore, if you include and have active both types of unit tests in a scheme, you will not be able to use that scheme to run unit tests on devices.
Проблема заключается в том, что симулятор не предоставляет доступ к UIApplicationDelegate.Вот пример теста для демонстрации:
- (void) testAppDelegate {
id yourApplicationDelegate = [[UIApplication sharedApplication] delegate];
STAssertNotNil(yourApplicationDelegate, @"UIApplication failed to find the AppDelegate");
}
Этот тест не проходит в моем проекте.Кстати, мои логические тесты работают нормально.