iOS编写单元测试库

时间:2014-05-05 20:57:55

标签: ios objective-c xcode unit-testing

我正在编写一个库,它将语法糖添加到本机iOS框架函数中。因此,我正在扩展本机类型,如NSString和NSArray。例如:

@implementation NSString (NPB)

-(BOOL) includesCharsInString: (NSString *)charsInString
{
    NSCharacterSet *charset  = [NSCharacterSet characterSetWithCharactersInString:charsInString];
    return [self rangeOfCharacterFromSet:charset].location != NSNotFound;
}

@end

在我的测试框架中,我包含扩展的.h文件,并将库作为目标依赖项,并且还链接到它。但是,当我针对库编写测试时,测试失败并显示“无法识别的选择器发送到...”错误。

如果我在编译源列表中包含相应的.m文件,那么它可以正常工作。但如果我链接到图书馆,为什么我需要这样做呢?

1 个答案:

答案 0 :(得分:1)

由于链接器无法找到类别代码的任何用法,因此默认情况下,它们在链接库时会被剥离。在构建设置中,将-ObjC添加到链接器标志。