ios – XCTest和CoreData

前端之家收集整理的这篇文章主要介绍了ios – XCTest和CoreData前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我试图通过使用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,而不是使用单例.

猜你在找的iOS相关文章