#iphone #unit-testing #xcode4 #uiwebview #ocunit
#iPhone #модульное тестирование #xcode4 #uiwebview #ocunit
Вопрос:
При создании UIWebView внутри модульного теста я получаю EXC_BAD_ACCESS
:
-(void)test1 {
[[UIWebView alloc] initWithFrame:CGRectZero]; // EXC_BAD_ACCESS
}
Существует ли специальная конфигурация для запуска модульного тестирования с использованием UIWebView?
Я использую OCUnit / SenTest в XCode 4.2.
Комментарии:
1. Я иногда получаю EXC_BAD_ACCESS при отладке на симуляторе, но никогда при запуске на устройстве. Я подозреваю ошибку :/
2. У меня точно такая же проблема! Я думал, что это только я. Может быть, вы не можете протестировать UIWebView?
Ответ №1:
По-видимому, это происходит только при непосредственном модульном тестировании статической библиотеки. Скорее всего UIWebView
, все, что нужно, не загружается с пустым test host
.
При модульном тестировании приложения этого не происходит.
Комментарии:
1. Итак, есть ли какой-либо способ протестировать с помощью UIWebView в статической библиотеке? Я добавил UIKit в настройки сборки статической библиотеки, но я все еще получаю этот EXC_BAD_ACCESS каждый раз, когда пытаюсь запустить тест.
Ответ №2:
Вы можете создать целевое приложение, предназначенное только для выполнения ваших модульных тестов. Создайте новое пустое приложение в той же рабочей области и установите его в качестве целевого объекта для целевого объекта модульного тестирования. Я называю свое приложение TestRunner.
Комментарии:
1. Не могли бы вы подробнее рассказать об этом? Это кажется разумным решением. Но вы имели в виду пустое приложение в рамках того же проекта или есть лучший способ настроить это?
2. Я добавил скриншот, который показывает, где настроена цель.
3. Это была часть «пустое приложение», которую я не совсем понял. Но теперь, когда у меня это заработало, я понял, что все, что вы имели в виду, это приложение-оболочку, у которого нет функций (пустые методы … и т. Д.), Которое Просто компилируется, а затем позволяет нашим тестам «нацеливаться» на выполнение. Это полностью работает и является жизнеспособным решением. Спасибо!
4. Просто чтобы продолжить здесь. Я получил полный набор тестов для работы. К счастью, этот конкретный проект имеет открытый исходный код, и код / методологию можно найти в этом представлении: github.com/BlueKai/bluekai-ios-sdk/tree/master/sdk
5. Мне это не помогает. Я получаю
GuardMalloc[UnitTestRunner-16080]: could not allocate new zone: (os/kern) no space available
вместоuardMalloc[xctest-16321]: could not allocate new zone: (os/kern) no space available
.