Ошибка компоновщика GHUnit с классами приложений - PullRequest
5 голосов
/ 18 июня 2011

Я пытаюсь запустить тест GHUnit, чтобы проверить, действительно ли сеттер работает для объекта NSManagedObject в моем приложении.Мое приложение называется Machine, а моя цель GHUnit называется Tests.Я добавил Machine в качестве зависимости к цели Tests.Мой объект в тесте называется Goal.Вот код, и ошибка в ссылке показана ниже.

#import <GHUnitIOS/GHUnit.h>
#import <CoreData/CoreData.h>
#import "Goal.h"
#import "GoalRec.h"

@interface ControllerTests : GHTestCase { }
@property (retain) Goal *goal;
@end

@implementation ControllerTests
@synthesize goal;

- (BOOL)shouldRunOnMainThread {
// By default NO, but if you have a UI test or test dependent on running on the main    thread return YES
return NO;
}

- (void)setUpClass {
    // Run at start of all tests in the class
}

- (void)tearDownClass {
    // Run at end of all tests in the class
}

- (void)setUp {
    // Run before each test method
    self.goal = [[[Goal alloc] init] autorelease];
}

- (void)tearDown {
    // Run after each test method
    self.goal = nil;   // prevents memory leak
}  

- (void)testImageArray {

    NSString *str = @"Hello";
    Goal *obj = self.goal;
    obj.goal = str;
    GHAssertEqualStrings(obj.goal, @"Hello", nil);

}

@ end

Ld / Users / dlwhitehurst / Библиотека / Разработчик / Xcode / DerivedData / Machine-cscchzscengbcmcmeyzxlkbhumdn / Build/Products/Debug-iphonesimulator/Tests.app/Tests normal i386 cd / Users / dlwhitehurst / Разработка / Кодирование / Objective-C / iPad / Машинное setenv MACOSX_DEPLOYMENT_TARGET 10.6 setenv PATH "/Developer/Platforms/iPhoneSimrepusbin: / Developer / usr / bin: / usr / bin: / bin: / usr / sbin: / sbin "/Developer/Platforms/iPhoneSimulator.platform/Developer/usr/bin/llvm-gcc-4.2 -arch i386 -isysroot/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator4.3.sdk -L / Users / dlwhitehurst / Библиотека / Разработчик / Xcode / DerivedData / Machine-cscchzscengbcmcmeyzxlkbhumdn / Build / Products-Products / Products / Debug dhl-dug-i-dug-i-ru / Products / Debug-dhugl-d-i-ru-Products / Products/ Библиотека / Разработчик / Xcode / DerivedData / Machine-cscchzscengbcmcmeyzxlkbhumdn / Build / Продукты / Debug-iphonesimulator -F / Users / dlwhitehurst / Разработка / Frameworks -filelist / Users / dlwhitehurst / Библиотека / Разработчик / Xcode / DerivedData / Machine-cscchzscengbcmcmeyzxlkbhumdn / Build / Intermediates / Machine.build / Debug-iphonesimulator / Tests.build / Нормальные объекты / i386 / Tests.LinkFileList -mmacosx-versionbjj = 10 = min = 10all_load -Xlinker -objc_abi_version -Xlinker 2 -рамка CoreData -фреймворк GHUnitIOS -фреймворк UIKit -фреймк фундаментTests.app/Tests

Неопределенные символы для архитектуры i386: "_OBJC_CLASS _ $ _ Goal", на которую ссылается: objc-class-ref в ControllerTests.o ld: символ (ы) не найден для архитектуры i386 collect2: ld возвращено1 статус выхода

Ответы [ 2 ]

1 голос
/ 25 июня 2011

Временное решение:

Выберите цель "Тесты". Выберите «Компилировать источники». Затем добавьте «Goal.m», вы будете запускать тесты.

Я тоже в замешательстве. Я чувствую, что это безумие. То же: Ошибка связывания для модульного тестирования с XCode 4?

0 голосов
/ 16 декабря 2013

Лучшим решением может быть дублирование цели при создании цели для теста GHUnit вместо создания новой цели.

...