PhpUnit:测试方法调用时的自定义错误消息

时间:2014-11-15 09:58:45

标签: php phpunit

目前我正在编写框架测试,我们通常在测试失败时使用自定义错误消息,为调试添加一些有用的信息:

$this->assertEquals($check, $result, 
             'Class::method returned the wrong result with argument XXX');

但是我希望在检查函数调用时自定义错误消息:

$mock->expects($this->any())->method('foobar')->with($this->equals('dummy'));

当上述断言不成立时,我会得到标准信息 我在PhpUnit文档中搜索过,但是我找不到自定义错误信息的方法,我错过了什么?

1 个答案:

答案 0 :(得分:0)

另一个选择是手动检查调用信息。不确定如何检查参数,但这是检查调用计数的示例

$myMock = $this->getMockBuilder(MyClass::class)->getMock();
$matcher = $myMock ->expects($this->once())->method('myFunctionToCount')->getMatcher();
//execute code that calls myFunctionToCount on $myMock
$this->assertEquals(1, $matcher->invocationMatcher->getInvocationCount(), "Assertion message goes here");

这是测试运行程序在内部所做的事情,但是可以让您控制断言消息

这并不完美,因为您需要保持期望计数和断言计数同步