将断言集成到测试类中

时间:2015-01-09 14:29:33

标签: unit-testing phpunit

为什么将测试断言集成到测试类中是不错的主意?

例如:

class SomeClass {
  function add($a) {
    return $a + 1;
    }

  function test_add($TestCase) {
    $TestCase->assertEquals($this->add(1), 2);
    $TestCase->assertEquals($this->add(2), 3);
    }
}

然后一些框架在所有test_ *函数上运行,传递它们TestCase对象

这种方法有什么问题?为什么所有框架都倾向于将类实现代码和测试断言分开?

1 个答案:

答案 0 :(得分:0)

我的第一个想法是这样做的班级规模。我发现作为经验法则,我为每行实际代码编写了3行测试代码。所以你的班级人数会增加300%。

另一个问题是组织。您的测试将穿插在类方法中。将东西放在容易找到的地方会变得更加困难。

与此同时,我们班级现在做的事情比过去多得多。它现在正在执行我们需要的任何功能,它还测试功能是否正确。那两个不同的东西表明它们应该是两个不同的类别。