围绕PHPUnit测试失败获取更多上下文

时间:2015-04-25 23:38:17

标签: php phpunit automated-tests

在PHPUnit中,假设我这样做:

$this->assertTrue( $some_variable == "foo" );

当我使用处于失败状态的代码运行我的测试时,PHPUnit告诉我:Failed asserting that false is true.这一切都很好,我通常可以找到测试失败的原因。但...

我想知道当测试失败时,PHPUnit是否有办法向我显示更多上下文。例如,PHPUnit是否可以输出类似:Failed asserting that false is true. When your test ran $some_variable was equal to "bar"的内容。这样我就可以更快地找出测试失败的原因。

如果我能在CLI中看到这个额外的上下文,我会喜欢它。是否有可以应用于PHPUnit的设置来实现这一目标?

1 个答案:

答案 0 :(得分:1)

使用assertTrue

assertTrue方法有第二个参数,您可以在其中指定断言为负数时断言应抛出的消息:

$this->assertTrue($someVariable == "foo", '$someVariable should have been "foo"')

使用专门的断言函数

PHPUnit提供了大量专门的断言(用于相等,标识,数组元素等等),它们产生合理的错误消息。看看documentation

$this->assertEquals("foo", $someVariable);