iOS GHUnit和核心数据

时间:2012-10-18 17:59:02

标签: ios unit-testing core-data gh-unit

ERS,

我最近将CoreData集成到我现有的iOS应用程序中。我以前存在围绕某些域和网络功能编写的测试;现在需要改装以使用CoreData(而不是存储在userDefaults中)。

我的项目中包含GHUnitIOS.framework。但是,我的所有测试都失败了,因为TestAppDelegate对CoreData的managedObjectContext一无所知。关于我所看到的内容的参考:

[GHUnitIOSAppDelegate managedObjectContext]: unrecognized selector sent to instance

这是有道理的 - 测试应用程序委托没有将managedObjectContext作为属性。我很乐意添加它,但由于我在使用框架时只能访问头文件,因此我无法根据自己的需要对其进行修改。我可以下载GHUnit源代码并修改实现文件,但如果还有其他选项,我宁愿不这样做。

其他人如何解决这个问题? IE,如何使用GHUnit修复我的测试以支持CoreData?

非常感谢。

1 个答案:

答案 0 :(得分:2)

之前我遇到过这个问题。 GHUnit测试框架使用自己的app委托。因此,调用委托不会调用您在app委托中编写的代码,并且其行为可能不稳定。

一般来说,您应始终处理在不是您的app委托的单例中调用managedObjectContext。最近我从OCunit切换到GHUnit并且不得不将所有这些功能抽象到另一个类中。这是一种痛苦,但值得。