GH-Unit for unit testing Objective-C code, why am I getting linking errors?

Posted by djhworld on Stack Overflow See other posts from Stack Overflow or by djhworld
Published on 2010-04-09T20:25:58Z Indexed on 2010/04/09 20:33 UTC
Read the original article Hit count: 507

Hi there, I'm trying to dive into the quite frankly terrible world of unit testing using Xcode (such a convoluted process it seems.)

Basically I have this test class, attempting to test my Show.h class

#import <GHUnit/GHUnit.h>
#import "Show.h"
@interface ShowTest : GHTestCase { }
@end

@implementation ShowTest
- (void)testShowCreate
{
    Show *s = [[Show alloc] init];
    GHAssertNotNil(s,@"Was nil.");

}

@end

However when I try to build and run my tests it moans with this error: -

Undefined symbols:

"_OBJC_CLASS_$_Show", referenced from:

 __objc_classrefs__DATA@0 in ShowTest.o

ld: symbol(s) not found

collect2: ld returned 1 exit status

Now I'm presuming this is a linking error. I tried following every step in the instructions located here: -

http://github.com/gabriel/gh-unit/blob/master/README.md

And step 2 of these instructions confused me: -

In the Target 'Tests' Info window, General tab:

Add a linked library, under Mac OS X 10.5 SDK section, select GHUnit.framework

Add a linked library, select your project.

Add a direct dependency, and select your project. (This will cause your application or framework to build before the test target.)

How am I supposed to add my project to the linked library list when all it accepts it .dylib, .framework and .o files. I'm confused!

Thanks for any help that is received.

© Stack Overflow or respective owner

Related posts about objective-c

Related posts about unit-testing