我正在 GHUnit 测试框架中编写单元测试。我在我的应用程序委托(delegate)中定义了一个 NSMutableDictionarydetailsDict。
在我的应用程序委托(delegate)中,我设置了一些值并保存它。 它在应用程序中工作正常,但是当我尝试调用方法在单元测试中设置值时,我无法设置任何值并且字典仍为空。
在测试用例中,我分配了 init 我的 appDelegate。从此对象向一个方法发送消息,该方法设置了一些键,但当我检查其值时,它仍然为空。
关于单元测试有什么我不知道的或者我错过了什么......?
任何答案指针都将受到高度赞赏。
编辑:我明白了,我必须单独分配 initdetailsDic 变量 像这样
#ifdef UNIT_TESTING
detailsDict = [[NSMutableDictionary alloc] init];
#endif
仍然对其他方法的其他答案持开放态度。
最佳答案
您无法分配和初始化变量。你可以分配和初始化一个对象,实际上你确实需要在某个地方分配和初始化这个 NSMutableDictionary 对象。
执行此操作的正确位置是同时为您的应用程序和每个测试用例运行的位置。应用程序委托(delegate)的 init
方法可能是一个不错的选择。
也就是说,我想说你的应用程序委托(delegate)根本不应该存在于你的单元测试中,因为你的单元测试不是应用程序。您应该将要测试的任何功能拆分为一个或多个单独的 Controller ,您可以从应用程序委托(delegate)和相关单元测试中创建和使用这些 Controller 。
关于iphone - 无法在单元测试中设置 NSMutableDictionary 中的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4802997/