【问题标题】:Is leaking objects considered OK in Testing Scenarios?在测试场景中泄漏的对象是否被认为是可以的?
【发布时间】:2009-10-14 15:30:41
【问题描述】:

我已经编写了一些 Objective-C 测试用例。典型的外观如下:

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

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

缓冲区分配返回缓冲区引用计数为1,我不在乎在缓冲区上调用自动释放,所以它在函数退出后泄漏。这在测试场景中是否可以接受?

【问题讨论】:

    标签: objective-c testing memory-management memory-leaks


    【解决方案1】:

    听起来不是个好主意。

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

    都是代码。

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

    【讨论】:

    • 同意。测试代码不会持久运行(这意味着泄漏将在退出时清理)。另一方面,您正在以微妙的方式改变测试运行的上下文。一旦你的测试变得更复杂(也许在模型中使用你的一些设置代码),事情就会变得很冒险。像往常一样释放缓冲区,避免坏习惯。
    • 大多数测试框架都有设置/拆卸方法,可以帮助管理内存,具体取决于您的情况。
    猜你喜欢
    • 2011-02-28
    • 2012-11-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多