Приложение OCUnit для iPhone - Установите все файлы .m как часть цели UnitTest - PullRequest
0 голосов
/ 28 июля 2010

Hy всем,

У меня есть две цели: MyApp и UnitTests

MyApp содержит два класса: ClassA и ClassB. В ClassA есть метод "getSomeNumber", который использует метод ClassB.

UnitTest - это "Пакет модульного теста", а в разделе "Группы и файлы" у меня есть папка с именем "UnitTests", гдея создаю класс "MyAppTest".

Класс MyAppTest имеет следующий метод:

-(void)testSomething
{
   ClassA *cA = [[ClassA alloc] init];
   int x = [cA getSomeNumber];
   [cA release];
   STAssertEquals(1, x, @"The number is not equal to 1");
}

Я импортировал "ClassA.h", и теперь мне нужно установить часть "ClassA.m"цели "ЮнитТест".Когда я строю, у меня появляется ошибка

**"_OBJC_CLASS_$_ClassB", referenced from:**

Поэтому мне нужно добавить «ClassB.m» в тагет «UnitTest», и это работает.

Что произойдет, если ClassA использует ClassC, который использует тысячиклассов?У меня есть эта проблема, и мне нужно включить тысячи целей в цель "UnitTest".

Я думаю, что было бы лучшим решением или конфигурацией включить весь мой проект MyApp в цель UnitTest,

Спасибо всем!Привет.

1 Ответ

0 голосов
/ 08 ноября 2010

Если у вас есть зависимости от тысяч классов, я бы посоветовал вам организовать эти классы в библиотеки, которые вы можете использовать повторно.Таким образом, вы можете связать цели (для тестирования или иным образом) с одной библиотекой, а не включать множество отдельных файлов кода.

Если вы ориентируетесь на устройство iOS, вам нужно будет создавать статические библиотекипоскольку динамическое связывание с пользовательскими библиотеками на устройствах невозможно.

...