CoreData在单元测试中返回NSManagedObjects而不是子类

时间:2012-06-22 23:14:04

标签: xcode unit-testing core-data nsmanagedobject nsmanagedobjectcontext

我有一个“Data”类,它将“NSManagedObject”子类化为一个bool属性“attribute”。我还在“数据”类中定义了一个方法“whoisyou”。此代码在应用程序中运行,但是只要我将此代码放入我的UnitTest中,Core Data就会返回“NSManagedObject”而不是“Data”对象,并且“attribute”属性可以工作,但“whoisyou”方法会抛出“无法识别的选择器“例外。

Data *data = [NSEntityDescription insertNewObjectForEntityForName:@"Data" inManagedObjectContext:self.moc];

NSLog(@"TYPE: %@", [data class]);

data.attribute = [NSNumber numberWithBool:YES];
STAssertTrue([data.attribute boolValue], @"should have been TRUE");
data.attribute = [NSNumber numberWithBool:NO];
STAssertFalse([data.attribute boolValue], @"should have been FALSE");

[data whoisyou];

单元测试环境的处理是什么?

1 个答案:

答案 0 :(得分:3)

确保您的自定义类实现文件包含在单元测试目标中。 :)