Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/iphone/38.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/matlab/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Iphone 无法在单元测试中的NSMutableDictionary中设置值_Iphone_Objective C_Cocoa_Unit Testing_Ios - Fatal编程技术网

Iphone 无法在单元测试中的NSMutableDictionary中设置值

Iphone 无法在单元测试中的NSMutableDictionary中设置值,iphone,objective-c,cocoa,unit-testing,ios,Iphone,Objective C,Cocoa,Unit Testing,Ios,我正在GHUnitTestFramework中编写单元测试。我的应用程序委托中定义了NSMutableDictionary detailsDict 在我的应用程序委托中,我在中设置了一些值并保存它。 它在应用程序中运行良好,但当我试图在单元测试中调用一个方法来设置它的值时,我无法设置任何值&字典仍然为空 在测试用例中,我alloc init我的appDelegate。消息来自这个对象的一个方法,它设置了几个键,但当我检查它的值时,它仍然是空的 关于单元测试有什么我不知道的吗,或者我遗漏了什么 如

我正在GHUnitTestFramework中编写单元测试。我的应用程序委托中定义了NSMutableDictionary detailsDict

在我的应用程序委托中,我在中设置了一些值并保存它。 它在应用程序中运行良好,但当我试图在单元测试中调用一个方法来设置它的值时,我无法设置任何值&字典仍然为空

在测试用例中,我alloc init我的appDelegate。消息来自这个对象的一个方法,它设置了几个键,但当我检查它的值时,它仍然是空的

关于单元测试有什么我不知道的吗,或者我遗漏了什么

如有任何答案或提示,将不胜感激

编辑:我明白了,我必须单独分配detailsDic变量初始化 像这样

#ifdef UNIT_TESTING
    detailsDict = [[NSMutableDictionary alloc] init];
#endif

仍然可以通过其他方法找到其他答案。

您不能分配和初始化变量。您可以alloc和init一个对象,实际上您确实需要在某个地方alloc和init这个NSMutableDictionary对象

这样做的适当位置是为您的应用程序和每个测试用例运行的地方。app委托的
init
方法可能是一个不错的选择


也就是说,我认为你的应用程序委托根本不应该存在于你的单元测试中,因为你的单元测试不是一个应用程序。您应该将要测试的任何功能拆分为一个或多个单独的控制器,这些控制器由应用程序代理和相关单元测试创建和使用。

您应该发布应用程序代理的代码。你不应该单独初始化它-显然,有些事情正在发生,这是不同的。在应用程序代理中,您在哪里分配了
详细信息信息?可能在
ApplicationIDStart:withOptions:
中?当然,如果您只是在测试中手动alloc/init委托,则不会调用此函数。谢谢您,彼得,您的答案总是很有帮助的。愿你学到更多&帮助我们更多;)。我们很幸运有你在这里。