1

Я разрабатываю статическую библиотеку в Obj-C для проекта CocoaTouch. Я добавил модульное тестирование к моему проекту Xcode, используя встроенную среду OCUnit. Я могу успешно запускать тесты при создании проекта, и все выглядит хорошо. Однако я немного смущен.Использование модульных тестов при разработке статических библиотек в Obj-C

Часть того, что делает статическая библиотека, это подключение к URL-адресу и загрузка там ресурсов. Я построил тестовый пример, который вызывает метод, который создает соединение и обеспечивает успешное соединение. Однако, когда мои тесты запускают соединение, никогда не происходит на моем тестовом веб-сервере (там, где установлено соединение).

Кажется, что мой код на самом деле не запускается, когда проходят тесты?

Кроме того, я выполняю некоторые вызовы NSLog в модульных тестах и ​​код, который они запускают, но я никогда их не вижу. Я новичок в модульном тестировании, поэтому я, очевидно, не совсем понимаю, что здесь происходит. Может кто-нибудь помочь мне здесь?

P.S. Кстати, это «Логические тесты», поскольку Apple называет их так, что они не связаны с библиотекой, вместо этого файлы реализации включены в целевую аудиторию.

ответ

2

Код, как вы загружаете данные? Большинство методов соединения URL-адресов являются асинхронными, и вы получаете уведомление о том, что данные доступны в качестве вызова цикла запуска. Вероятно, вы не запускаете цикл выполнения.

Если это проблема, прочтите run loops.

+0

Также обратите внимание на Google Toolbox для Mac (на code.google.com). Он включает среди множества удивительных инструментов тестирования класс , который помогает управлять циклом запуска во время тестов. –

+0

Очень полезный ответ, спасибо! – macinjosh

Смежные вопросы