Мой коллега и я уже несколько недель боремся с юнит-тестами. Мы пытались настроить SenTest, GTM и другие фреймворки, но мы никогда не сможем преодолеть грубый шар ошибок компоновки.
Вот где я сейчас с GTM. Буду признателен за любые рекомендации.
Помимо помощи в SO, если у вас есть опыт с этим, я бы с радостью заплатил консультанту. Пожалуйста, напишите мне на andrew@gaiagps.com, если вы думаете, что можете помочь мне с этим.
Я следовал инструкциям здесь:
http://code.google.com/p/google-toolbox-for-mac/wiki/iPhoneUnitTesting. Я обнаружил, что мне нужно добавить файл "GTMObjC2Runtime.h" в проект. После этого я смог получить ожидаемый вывод консоли после установки фреймворка: «Выполнено 0 тестов с 0 ошибками (0 неожиданными) за 0,030 (0,030) секунд»
Затем я отправился написать контрольный пример для одного из моих классов. Я создал WebAPITest.h. Я создал простой тест, который работал нормально. Я только что подтвердил 1 == 1.
Затем я решил написать тест для моего AppDelegate.h. Итак, я добавил #import "AppDelegate.h" в WebAPITest.h и получил 8 ошибок компоновки. Мой проект использует FBConnect, и компилятор жалуется, что не может найти файлы FBConnect. Для решения этой проблемы я добавил путь поиска заголовка FBConnect в конфигурацию сборки объекта Test, и ошибки компоновки исчезли.
Теперь я в тупике. Когда я пытаюсь ссылаться на AppDelegate в реализации, я получаю следующие ошибки компоновки:
Построение цели «fooTest» проекта «foo» с конфигурацией «Debug» - (2 ошибки)
неопределенные символы:
".objc_class_name_AppDelegate", на который ссылаются из:
литерал-указатель @__ OBJC @__ cls_refs @ AppDelegate в WebAPITest.o
ld: символ (ы) не найден
collect2: ld вернул 1 статус выхода
Итак, я попытался добавить AppDelegate к цели теста, но потом
начал хотеть все зависимости для AppDelegate тоже, и я
думаю, я не должен добавлять десятки файлов в модульный тест
цель.
Есть идеи, что мне делать дальше?