测试简单的构造函数和默认值是“测试语言”,还是可以接受?

时间:2010-11-10 16:16:15

标签: unit-testing

在单元测试中,我常常看到人们测试非常简单的事情,这些事情实际上不会失败。例如,给定以下类:

class Foo
{
    public $var = 'default val1';
    public $var2 = 4;
    public $var3;

    public function __construct($var3)
    {
        $this->var3 = $var3;
    }
}

非常简单。 $var$var2有默认值,$var3通过构造函数初始化。

但是,对某些人来说,这需要3次测试。检查默认值的两个是初始化的,第三个检查$var3是通过构造函数分配的。对我而言,这似乎是一种浪费 - 似乎我正在测试语言对这些功能的实现。

这样的测试是个好主意吗?如果是这样,为什么?

3 个答案:

答案 0 :(得分:2)

测试编译器并不值得编写测试,通常不是真正简单的代码。除非你有某种外在要求,否则不会。

但是,这并不能防止将来对Foo进行更改。如果我正在编写一些依赖于该行为的其他函数,我会非常想在该函数的测试中编写一个快速测试。

答案 1 :(得分:1)

似乎浪费时间给我。没有逻辑的东西不需要测试 - 只要你足够好地测试行为,构造函数,setter等的任何问题都会暴露在某处。

答案 2 :(得分:0)

如果此行为是公共接口的一部分,则应对其进行测试。默认情况下,客户端代码可能依赖$var具有此特定值。如果有人改变了,测试应该确保它被注意到。

相关问题