Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/wix/2.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
Unit testing 是否考虑测试简单构造函数和默认值;“测试语言”;,还是可以接受?_Unit Testing - Fatal编程技术网

Unit testing 是否考虑测试简单构造函数和默认值;“测试语言”;,还是可以接受?

Unit testing 是否考虑测试简单构造函数和默认值;“测试语言”;,还是可以接受?,unit-testing,Unit Testing,在单元测试中,我经常看到人们测试非常简单的东西,实际上这些东西是不会失败的。例如,给定以下类: class Foo { public $var = 'default val1'; public $var2 = 4; public $var3; public function __construct($var3) { $this->var3 = $var3; } } 很简单$var和$var2具有默认值,$var3通过构造函

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

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

    public function __construct($var3)
    {
        $this->var3 = $var3;
    }
}
很简单
$var
$var2
具有默认值,
$var3
通过构造函数初始化

不过,对一些人来说,这需要3次测试。初始化两个用于检查默认值的函数,通过构造函数分配第三个用于检查
$var3
。对我来说,这似乎是一种浪费——我似乎在测试语言对这些特性的实现


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

编写测试来测试编译器确实不值得,而且通常不需要编写真正简单的代码。除非你有某种外部需求


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

对我来说似乎是浪费时间。没有逻辑的东西不需要测试——只要你测试得足够好,构造函数、设置器等的任何问题都会暴露在某个地方。

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