2
在Objective-C的Xcode 6中: 當我創建一個Cocoa Touch框架時,項目已經有了一個單元測試目標。單元測試的可可觸摸框架
假設我有我的框架下面的類和單元測試情況:
//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的
未定義的符號: 「_OBJC_CLASS_ $ _MyClass「,引用自: objc-class-ref MyClassTests.o
爲什麼t他的測試目標沒有找到我的課程?我無法弄清楚什麼是錯的。我假設Xcode模板會正確設置所有內容。
我沒有看到你的類的任何接口的聲明稱爲MyClass的,如果你在其他地方定義你的界面,只需導入頭 – deathhorse 2014-10-08 17:46:46
@deathhorse我添加缺少的行。只有導入不能解決問題。 Cocoa Touch框架的單元測試似乎與普通應用程序不同。 – Sebastian 2014-10-08 19:14:53
嗯..可能你正在構建像「armv7」,armv7s等「設備」體系結構的框架,但不適用於模擬器。嘗試在設備上運行相同的測試 – deathhorse 2014-10-08 19:27:12