在单元测试中创建 coredata 文件时出错

Posted

技术标签:

【中文标题】在单元测试中创建 coredata 文件时出错【英文标题】:Error while creating coredata file in unit test 【发布时间】:2012-10-12 14:34:16 【问题描述】:

我在静态库中有一个 coredata 文件,我正在为它创建单元测试。当我在单元测试执行期间尝试在以下步骤中创建 sqlite 文件时出现此错误

_persistentStoreCoordinator = [[NSPersistentStoreCoordinator alloc] initWithManagedObjectModel:[self managedObjectModel]];
    if (![_persistentStoreCoordinator addPersistentStoreWithType:NSSQLiteStoreType
                                                   configuration:nil
                                                             URL:storeURL
                                                         options:nil
                                                           error:&error])
     [...] 

测试用例“-[PersonTest testAddPerson]”已启动。 2012-10-12 07:19:23.989 otest[11852:7e03] 未解决的错误错误 Domain=NSCocoaErrorDomain Code=512 "无法执行该操作 完全的。 (可可错误 512。)“UserInfo=0x216a320 原因=失败 创建文件;代码 = 2, reason = "创建文件失败;代码 = 2";

【问题讨论】:

【参考方案1】:

尝试为 .sqlite 文件指定与项目名称完全相同的名称。

还有

确保从库中复制 .sqlite 文件并将其保存到应用程序目录。

【讨论】:

我已将 .sqlite 文件命名为与项目名称完全相同,甚至 .xcmod​​eldata 文件也是相同的。在我的单元测试目标中,我还包含了 .sqlite 文件。 @IphoneDeveloper 检查***.com/questions/7906330/…。你在复制文件吗?

以上是关于在单元测试中创建 coredata 文件时出错的主要内容,如果未能解决你的问题,请参考以下文章

如何让单元测试访问核心数据模型

在目标 c 中创建简单的 OCMock 单元测试

如何使用 Xcode 4 在 Cocoa Touch 单元测试包中创建应用程序测试?

与数据库交互而不在数据库中创建数据的单元测试代码

如何利用linux测试android

单元测试中的文件访问是不是不好?