用于单元测试的内存存储中的 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 核心数据的主要内容,如果未能解决你的问题,请参考以下文章
使用内存 sql lite 对流利的 nhibernate 存储库进行单元测试 - 没有这样的表错误
在 iOS 开发中使用 OCUnit 对 XCode 4.5 中的核心数据对象进行单元测试