gpt4 book ai didi

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

转载 作者:可可西里 更新时间:2023-10-31 23:40:11 24 4
gpt4 key购买 nike

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

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

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

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

当上述断言不成立时,我得到标准消息。
我在 PhpUnit 文档中进行了搜索,但找不到自定义错误消息的方法,我是否遗漏了任何内容?

最佳答案

这不是故意的,但您可以(ab)使用这种方式,PHPUnit 引发预期失败:它抛出 PHPUnit_Framework_ExpectationFailedException

所以只要这些内部结构不改变1,你就可以使用:

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

// your test code here

} catch (\PHPUnit_Framework_ExpectationFailedException $e) {
$this->fail('your custom message here');
}

请注意,如果您对同一个测试代码有多个期望,就不再那么容易了,您必须检查 $e->getMessage() 并相应地更改您的消息。这是一个冗长的级别(也是错误的来源),我不会仅仅为了更改已经非常解释性的消息而 promise 。


1) phpunit-mock-objects 包的当前版本:3.0.6。参见 https://github.com/sebastianbergmann/phpunit-mock-objects/tree/3.0/src/Framework/MockObject/Matcher

关于PhpUnit:测试方法调用时的自定义错误消息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26944630/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com