0

呃,

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

我已经GHUnitIOS.framework包含在我的项目中。但是,我所有的测试都失败了,因为 TestAppDelegate 对 CoreData 的managedObjectContext. 供参考我所看到的:

[GHUnitIOSAppDelegate managedObjectContext]: unrecognized selector sent to instance

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

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

非常感谢。

4

1 回答 1

2

我以前有这个问题。GHUnit 测试框架使用它自己的应用程序委托。因此,调用委托不会调用您在应用委托中编写的代码,并且其行为可能不稳定。

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

于 2012-12-07T23:06:58.500 回答