加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

php – 如何在测试时查看通知?

发布时间:2020-12-13 16:05:29 所属栏目:PHP教程 来源:网络整理
导读:我有一个发布非致命通知的课程: class MyClass { public function foo(){ trigger_error('Notice this message.',E_USER_NOTICE); return true; }} 这是一个基本的单元测试: class MyClassTest extends PHPUnit_Framework_TestCase { public function test
我有一个发布非致命通知的课程:

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.

首先,让我指出,我喜欢我可以阅读这个通知,这就是我想要的,但没有失败的测试.

我知道我可以通过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());
    }
}

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读