用于单元测试的内存存储中的 iOS 10 核心数据

Posted

技术标签:

【中文标题】用于单元测试的内存存储中的 iOS 10 核心数据【英文标题】:iOS 10 Core Data In Memory Store for Unit Tests 【发布时间】:2016-08-17 19:32:23 【问题描述】:

对于单元测试,我使用了类似的东西:https://gist.github.com/aceontech/8860058 在测试我的核心数据模型时创建内存存储。随着 ios 10 的引入,NSPersistentStoreCoordinators 现在隐藏在 NSPersistentContainers 中。有没有人在 iOS 10 上玩过 Core Data 并弄清楚如何初始化类似的东西?任何帮助将不胜感激。

谢谢!

【问题讨论】:

【参考方案1】:

可以继续使用旧方法。它没有被弃用,也不需要NSPersistentContainer

如果您想要更新的方法,请使用新的NSPersistentStoreDescription 类,它处理添加持久存储时可能指定的所有内容。你会做类似的事情

let container = NSPersistentContainer(name: "MyModel")

let description = NSPersistentStoreDescription()
description.type = NSInMemoryStoreType
container.persistentStoreDescriptions = [description]

container.loadPersistentStores(completionHandler:  ...

这个新类还包括自动轻量级迁移选项等内容。

【讨论】:

我在使用 NSInMemoryStoreType 时遇到问题,其中商店无法加载模型定义。除了上面的代码,我需要通过添加将其指向默认配置:description.configuration = "Default" 很有趣,也很奇怪。感谢您的提醒。

以上是关于用于单元测试的内存存储中的 iOS 10 核心数据的主要内容,如果未能解决你的问题,请参考以下文章

用于单元测试的内存 DBMS

如何在 ios 中的单元格上显示核心数据?

使用内存 sql lite 对流利的 nhibernate 存储库进行单元测试 - 没有这样的表错误

在 iOS 开发中使用 OCUnit 对 XCode 4.5 中的核心数据对象进行单元测试

单元测试中的新核心数据堆栈(PersistenceController)

在 Swift 中的自定义单元格中存储/检索核心数据