带有单元测试的Cocoa touch Framework

时间:2014-10-08 17:27:55

标签: objective-c unit-testing xcode6 xctest

在带有Objective-C的Xcode 6中: 当我创建一个Cocoa Touch Framework时,该项目已经有了一个单元测试目标。

假设我的框架中有以下类和单元测试用例:

//Framework
@interface MyClass : NSObject
- (NSString*)greetings;
@end

@implementation MyClass 

- (NSString*)greetings {
  return @"Hello";
}
@end

// Test class
#import <UIKit/UIKit.h>
#import <XCTest/XCTest.h>
#import "MyClass.h"
@interface MyClassTests : XCTestCase
@end

@implementation MyClassTests
- (void)testGreetings {
  MyClass *myClass = [[MyClass alloc] init];
  XCTAssertTrue([[myClass greetings] isEqualToString:@"Hello"]);
}
@end

当我尝试运行测试时,我得到:

  

架构x86_64的未定义符号:     &#34; _OBJC_CLASS _ $ _ MyClass&#34;,引自:         MyClassTests.o中的objc-class-ref

为什么测试目标没有找到我的课程?我无法弄清楚出了什么问题。我假设Xcode模板会正确设置所有内容。

1 个答案:

答案 0 :(得分:0)

您在构建设置中添加此x86_64架构 - &gt;有效架构x86_64并尝试一下。它可以工作。

参考架构:

armv7: Used in the oldest iOS 7-supporting devices
armv7s: As used in iPhone 5 and 5C
arm64: For the 64-bit ARM processor in iPhone 5S
i386: For the 32-bit simulator
x86_64: Used in 64-bit simulator