请原谅我的无知; 我还是新手单元测试领域。
有人能够解释一下为什么..
$this->assertGreaterThan( 2, $result );
..比..
$this->assertTrue( $result > 2 );
..更好(以及其他所有特定的assert方法)吗?
谢谢!
请原谅我的无知; 我还是新手单元测试领域。
有人能够解释一下为什么..
$this->assertGreaterThan( 2, $result );
..比..
$this->assertTrue( $result > 2 );
..更好(以及其他所有特定的assert方法)吗?
谢谢!
如果你向你的妈妈/爸爸/叔叔展示这些内容,assertGreaterThan
更直观易懂。此外,isGreaterThan 的失败信息也会更好。
"1 was not greater than 2"
或者"false was not true"
哪一个更具表现力?
实际上,最好的方法可以提供更好的可读性和更好的错误消息:使用PHPUnit函数为基础的断言或Hamcrest库。
assertThat(count($users), greaterThan(2));
>> Expected: greater than 2
>> but: was 1
或者
assertThat($users, arrayWithSize(greaterThan(2)));
>> Expected: array with size greater than 2
>> but: was array with size 1
通过将字符串作为断言方法的第一个参数或Hamcrest的assertThat
函数的参数,或PHPUnit的assertThat
函数的第三个参数,您可以始终提供可读的错误消息:
self::assertTrue('At least one user found', !empty($users));
>> At least one user found
>> Expected: true
>> but: false
或者
assertThat('At least one user found', !empty($users), is(true));
>> At least one user found
>> Expected: true
>> but: false
runBare
方法。如果您已经有自己的抽象测试用例,就像我们一样,那么添加这个功能是微不足道的。 - David Harkness$minimumValue = 2;
$this->assertGreaterThan($minimumValue, $result);
而且
$resultGreaterThanMinimumValue = $result > 2;
$this->assertTrue($resultGreaterThanMinimumValue);
这仍然不是理想的(因为这些断言在英语中读起来不像句子),但这两种方法都没有更好的。