iOS GHUnit 和核心数据
Posted
技术标签:
【中文标题】iOS GHUnit 和核心数据【英文标题】:iOS GHUnit and Core Data 【发布时间】:2012-10-18 17:59:02 【问题描述】:各位,
我最近将 CoreData 集成到我现有的 ios 应用程序中。我以前有围绕一些域和网络功能编写的现有测试;现在需要对其进行改造以使用 CoreData(而不是存储在 userDefaults 中)。
我的项目中包含GHUnitIOS.framework
。但是,我所有的测试都失败了,因为 TestAppDelegate 对 CoreData 的managedObjectContext
一无所知。作为我所看到的参考:
[GHUnitIOSAppDelegate managedObjectContext]: unrecognized selector sent to instance
这是有道理的 - 测试应用委托没有 managedObjectContext 作为属性。我很想添加它,但由于我在使用框架时只能访问头文件,因此我无法真正根据需要对其进行修改。我可以下载 GHUnit 源代码并修改实现文件,但如果有其他选择,我宁愿不这样做。
其他人是如何解决这个问题的? IE,如何修复我的测试以使用 GHUnit 支持 CoreData?
非常感谢。
【问题讨论】:
如果我在我的主 AppDelegate 中创建了一个对象来封装 CoreData 属性/方法,这是否允许我测试/模拟必要的 CoreData 设置? 【参考方案1】:我之前遇到过这个问题。 GHUnit 测试框架使用它自己的应用程序委托。所以调用委托不会调用你在应用委托中编写的代码,它的行为可能会不稳定。
一般来说,您应该始终在不是您的应用委托的单例中处理调用 managedObjectContext(s)。最近我从 OCunit 切换到 GHUnit,不得不将所有这些功能抽象到一个不同的类中。这很痛苦,但值得。
【讨论】:
以上是关于iOS GHUnit 和核心数据的主要内容,如果未能解决你的问题,请参考以下文章