1

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

作为旁注,我正在使用 MagicalRecord,它可能有帮助,也可能没有帮助。

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

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

任何想法?还是更好的解决方案?

谢谢

4

2 回答 2

0

MagicalRecord 包含一个名为[MagicalRecord setupCoreDataStackWithInMemoryStore]. 这将根据您的数据模型创建一个内存存储。不需要复制或您提到的任何内容,因为这种类型的存储不是持久的(您说过在实际使用之前无论如何都会将其全部删除)。所以不用担心克隆SQL版本,只要设置一个内存版本并使用它。

于 2013-08-13T01:37:05.217 回答
0

我建议遵循我写的这个指南:http ://www.cimgf.com/2012/05/15/unit-testing-with-core-data/

它介绍了使用内存存储设置堆栈以供单元测试使用的方法。

于 2013-08-13T00:36:00.763 回答