Kev*_*tre 12 iphone testing xcode cocoa-touch objective-c
我在XCode 4中使用单元测试创建了一个新的Cocoa Touch静态库项目,并添加了一个类别:
// NSString+Inflections.h
@interface NSString (Inflections)
- (NSString *)pluralize;
@end
// NSString+Inflections.m
@implementation NSString (Inflections)
- (NSString *)pluralize { return self; }
@end
Run Code Online (Sandbox Code Playgroud)
然后在我的测试用例中添加了相应的import语句并编写了以下测试:
- (void)testPluralize
{
NSString *test = @"person";
NSString *expected = @"people";
NSString *actual = [test pluralize];
STAssertEqualObjects(actual, expected, @"Whoops");
}
Run Code Online (Sandbox Code Playgroud)
但是,这会导致我的测试在'无法识别的选择器发送到实例'时崩溃(而不是失败).
如何测试库中的类别?
我已经压缩并上传了完整的项目在这里,如果我的描述是不够的.
Bil*_*ill 19
我自己正在寻找这个问题的答案,并且发现(我相信)一个更简单的解决方案,无论何时在项目中添加新的类别类,都不需要记住在Compile Sources列表中添加引用.
在测试目标的构建设置中,添加-ObjC到Linking/Other Linker Flags值.
有关实际发生此错误的原因的进一步说明,请参阅Apple Reference.
Joe*_*Joe 13
编辑:请务必看到有关单元测试未找到文件的答案
+1用于上传项目.问题是您的测试目标在Build Phases中不包含NSString + Inflections.m.
在XCode 4中
然后你应该获得类似以下输出的东西
TestSuite'/blahblah/PoppyTests.octest(Tests)'于2011-03-28 21:31:34 +0000完成.执行1次测试,在0.000(0.002)秒内发生1次故障(0次意外)
| 归档时间: |
|
| 查看次数: |
3362 次 |
| 最近记录: |