为什么单元测试系统包含无用的断言方法?

Xeo*_*oss 4 tdd build-automation unit-testing

我想知道为什么像PHPUnit这样的单元测试系统包括似乎是重复的运算符,只会增加单元测试的开销.我可以理解其中的几种方法,但大多数似乎都浪费时间.

public function testPop(array stack)
{
    this->assertEquals('foo', array_pop(stack));
    this->assertEmpty(stack);
}
Run Code Online (Sandbox Code Playgroud)

vs原始代码(更短更快)

public function testPop(array stack)
{
    this->assert('foo' == array_pop(stack));
    this->assert(empty(stack));
}
Run Code Online (Sandbox Code Playgroud)

这些方法是否适用于那些不理解编程语言的人仍然可以编写单元测试?我相信这个项目的作者比我聪明,所以必须有一个理由.

Rei*_*ica 6

这些函数通常提供更有用的输出.例如,assertEquals测试可以告诉您预期值和实际值,并且它们不相等.

例如,以下代码:

this->assertEquals(1, 0);
Run Code Online (Sandbox Code Playgroud)

会产生这样的输出:

Failed asserting that 0 matches expected 1.
Run Code Online (Sandbox Code Playgroud)