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 16 更新版本时,我们听到了困扰 Apple...
欧版/美版 特别说一下,美版选错了 可能会永久丧失4G,不过只...
一般在接外包的时候, 通常第三方需要安装你的app进行测...
前言为了让更多的人永远记住12月13日,各大厂都在这一天将应...