我试图通过使用XCTest类和方法在
Xcode 5中单元测试我的模型.
因为我的模型类继承了managedObject,我不能只是实例化(alloc / init)它们,而是调用getter和setter或者我需要测试的方法.
我需要使用NSEntityDescription创建它们并使用managedObjectContext.
那就是这一点,我有麻烦.
我不知道在哪里以及如何创建用于单元测试的managedObjectContext的目的.
如果有人有一些建议或代码示例,这将是非常有帮助的.
谢谢.
解决方法
我使用内存存储来进行单元测试,并创建其中的所有实体.
此类方法可以放在TestsHelper.m中
+ (NSManagedObjectContext *)managedObjectContextForTests { static NSManagedObjectModel *model = nil; if (!model) { model = [NSManagedObjectModel mergedModelFromBundles:[NSBundle allBundles]]; } NSPersistentStoreCoordinator *psc = [[NSPersistentStoreCoordinator alloc] initWithManagedObjectModel:model]; NSPersistentStore *store = [psc addPersistentStoreWithType:NSInMemoryStoreType configuration:nil URL:nil options:nil error:nil]; NSAssert(store,@"Should have a store by now"); NSManagedObjectContext *moc = [[NSManagedObjectContext alloc] initWithConcurrencyType:NSMainQueueConcurrencyType]; moc.persistentStoreCoordinator = psc; return moc; }
这对我有用,因为我使用依赖注入来传递我的moc,而不是使用单例.