我在类的+initialize
方法中有一些代码,我想测试(使用简单的OCUnit)。即它的应用程序委托设置了一些用户默认值,所以我的测试看起来像这样:
您对我如何实现这一目标有任何暗示吗?
答案 0 :(得分:0)
是的 - 你可以将你的默认初始化实现移到一个单独的函数,你可以从+[MONObject initialize]
调用它。
在较低级别的套件中测试该函数,该套件不会将objc类(MONObject
)加载到objc运行时。
然后你可以测试它并在单独的可执行文件中销毁它,并依赖你的应用程序级别测试套件中的那个证明。
答案 1 :(得分:0)
当您设置“用户默认值”默认值时,仅在“用户默认值”中未存储其他值时使用。因此,如果从“用户默认值”调用值,则会获得默认值,除非您在上一次运行中存储了值(请注意,您必须删除设备上的应用程序,因为“运行之间存储了”用户默认值“)。 您应该为所有“用户默认值”设置默认值,因为它仅在第一次使用时才适用。
我可能误解了你的要求,但我认为你是在默认值和默认值中混合设置值,这些值在没有设置时使用。
我也很困惑为什么要在+ initialize类方法中加载一个类,在创建任何实例之前调用它?