Модульное тестирование с помощью UIWebView

#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 .