在我们现有的应用中,我们有许多不同版本的xcdatamodel
:
+ TheApp.xcdatamodel
TheApp.1.0.xcdatamodel
TheApp.1.1.xcdatamodel
TheApp.2.0.xcdatamodel
...
我们知道执行数据库迁移测试的传统方式是在这个问题中提出的:How to Test Core Data Migration With an App Already in the App Store?简而言之,它的工作原理如下:
我们一直在为我们之前版本的应用程序使用此迁移测试方法。我们的QAs将执行上述步骤,然后自行判断迁移是否成功。
但是,在最近的升级中,我们的数据模型发生了很大变化。要求质量保证人员记住在旧版本的应用程序中创建的内容,并了解迁移过程中丢失或未丢失的内容,这听起来不是一个好主意。因此,我们希望看看开发人员是否有可能为数据库迁移编写单元测试。
因此,第一步之一是生成测试数据。请注意,我们可以在Xcode项目中看到xcdatamodel
的所有先前版本,似乎有可能。简而言之,问题是:
是否可以从我们当前版本的应用程序中以编程方式生成以前版本xcdatamodel
的测试数据?
请让我知道你的想法。建议也是可以接受的。
答案 0 :(得分:0)
我们这样做:我们首先需要获取您要使用的任何模型的URL,然后从中创建managedObjectModel
。
let oldModelUrl = NSBundle.mainBundle().URLForResource("CoreDataExample.momd/CoreDataExample",
withExtension: "mom")!
let oldManagedObjectModel = NSManagedObjectModel.init(contentsOfURL: oldModelUrl)