gpt4 book ai didi

php - 测试时如何查看通知?

转载 作者:可可西里 更新时间:2023-10-31 23:28:20 25 4
gpt4 key购买 nike

我有一个发出非致命通知的类:

class MyClass {
public function foo(){
trigger_error('Notice this message.', E_USER_NOTICE);
return true;
}
}

这是一个基本的单元测试:

class MyClassTest extends PHPUnit_Framework_TestCase {
public function testCanFoo(){
$obj = new MyClass;
$this->assertTrue($obj->foo());
}
}

PHPUnit 自然会将此通知转换为异常,未捕获的异常必然会作为错误而无法通过测试。

There was 1 error:

1) MyClassTest::testCanFoo
Notice this message.

首先,让我指出,我很高兴能够阅读此通知,this 正是我想要的,但是 未通过测试

我知道我可以通过 docblock 测试.

class MyClassTest extends PHPUnit_Framework_TestCase {
/**
* @expectedException PHPUnit_Framework_Error_Notice
*/
public function testCanFoo(){
$obj = new MyClass;
$this->assertTrue($obj->foo());
}
}

但是现在通知被完全吞没了。

PHPUnit 5.5.4 by Sebastian Bergmann and contributors.

. 1 / 1 (100%)

Time: 17 ms, Memory: 4.00MB

OK (1 test, 1 assertion)

如何让它同时通过测试查看通知消息?

最佳答案

您可以通过这种方式禁止转换为异常:

class MyClassTest extends PHPUnit_Framework_TestCase {
public function testCanFoo(){
// disable conversion into exception
PHPUnit_Framework_Error_Notice::$enabled = false;
$obj = new MyClass;
$this->assertTrue($obj->foo());
}
}

关于php - 测试时如何查看通知?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39536342/

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