如何将CoreData SQLite支持的持久存储克隆到“内存中”?

时间:2013-08-13 00:01:32

标签: ios core-data magicalrecord

我想在内存中创建我的CoreData结构(而不​​是数据)的克隆。这将允许我使用新的CoreData堆栈编写单元测试,而不必处理当前存储在实际SQLite数据库中的数据。

作为旁注,我正在使用MagicalRecord,这可能有所帮助。

我对单元测试的想法如下:

  • - (void)setUp期间打开应用CoreData商店(SQLite)
  • 克隆存储到内存
  • 关闭持久性SQLite商店
  • 打开刚创建的内存商店
  • 删除内存存储中的所有数据
  • 运行我的测试

有什么想法吗?还是更好的解决方案?

由于

2 个答案:

答案 0 :(得分:0)

我建议按照本指南编写:http://www.cimgf.com/2012/05/15/unit-testing-with-core-data/

它设置了一个带有内存存储的堆栈,用于单元测试。

答案 1 :(得分:0)

MagicalRecord包含一个名为[MagicalRecord setupCoreDataStackWithInMemoryStore]的函数。这将根据您的数据模型创建内存存储。没有必要复制或你提到的任何东西,因为这种类型的商店不是持久性的(你说你在实际使用它之前就会删除它)。所以不要担心克隆SQL版本,只需设置内存版本并使用它。