运行PHPUnit时,以下断言将生成.
或F
:
$this->assertEquals('foo', $bar);
但是,如果我想知道测试本身内断言的结果怎么办?类似于:
if ($this->assertEquals('foo', $bar)) {
// log or do something
} else {
// do something else
}
可能没有理由运行断言(或者可能存在断言),但这纯粹是从调试的角度来看这个问题。
答案 0 :(得分:1)
PHPUnit使用异常来表示测试失败。
如果我们遵循assertEquals()
代码,我们可以看到on line 137 of isEqual.php,如果操作数不相等则抛出新的PHPUnit_Framework_ExpectationFailedException
。然后,测试运行器将其转换为控制台输出的“F”,并将if用于报告等。
您可以捕获Exception并在测试用例中使用它执行您喜欢的操作。如果您仍希望测试失败,您可能需要重新抛出它:
try {
$this->assertEquals('foo', $bar);
// do something else
} catch (PHPUnit_Framework_ExpectationFailedException $e) {
// log or do something
throw $e; // rethrow to make sure that the test still fails
}