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
。测试应该确保如果有人改变了它,它会被注意到