Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/string/5.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
Objective c 在测试场景中泄漏对象是否被认为是正常的?_Objective C_Testing_Memory Management_Memory Leaks - Fatal编程技术网

Objective c 在测试场景中泄漏对象是否被认为是正常的?

Objective c 在测试场景中泄漏对象是否被认为是正常的?,objective-c,testing,memory-management,memory-leaks,Objective C,Testing,Memory Management,Memory Leaks,我已经编写了一些Objective-C测试用例。典型情况如下所示: - (void) test_size_Equals_Excpectation_After_initWithSize { int size = 10; Buffer* buff = [[Buffer alloc] initWithSize:size]; GHAssertEquals([buff size], size, nil); } Buffer alloc返回引用计数为1的Buffer,我不想调用B

我已经编写了一些Objective-C测试用例。典型情况如下所示:

- (void) test_size_Equals_Excpectation_After_initWithSize
{
    int size = 10;
    Buffer* buff = [[Buffer alloc] initWithSize:size];

    GHAssertEquals([buff size], size, nil);
}

Buffer alloc返回引用计数为1的Buffer,我不想调用Buffer上的autorelease,所以在函数退出后它会泄漏。这在测试场景中可以接受吗?

听起来不是个好主意

您的测试代码应该和应用程序代码一样编写

都是密码


谁说泄漏不会对其他测试产生不利影响,导致一些失败被报告为成功,反之亦然?

听起来不是个好主意

您的测试代码应该和应用程序代码一样编写

都是密码


谁说泄漏不会对您的其他测试产生不利影响,导致一些失败被报告为成功,反之亦然?

同意。测试代码不会持续运行(这意味着泄漏将在退出时清除)。另一方面,您正在以微妙的方式改变测试运行的上下文。一旦您的测试变得更复杂(可能在实体模型中使用了一些设置代码),事情就会变得棘手。只要像平常一样释放缓冲区,避免坏习惯。大多数测试框架都有安装/拆卸方法,可以帮助管理内存,具体取决于您的环境。同意。测试代码不会持续运行(这意味着泄漏将在退出时清除)。另一方面,您正在以微妙的方式改变测试运行的上下文。一旦您的测试变得更复杂(可能在实体模型中使用了一些设置代码),事情就会变得棘手。只要像平常一样释放缓冲区,避免坏习惯。大多数测试框架都有安装/拆卸方法,可以帮助管理内存,具体取决于您的环境。