【问题标题】:PHPUnit try catch does not work in a test casePHPUnit try catch 在测试用例中不起作用
【发布时间】:2017-01-09 16:27:35
【问题描述】:

我试图在 PHPUnit 测试中捕获异常,但它没有按预期工作。异常似乎在更高级别被捕获,我不明白为什么。

public function testException()
    {
        echo 'Enter';
        try {
            throw new Exception('error.');
        } catch (Exception $e) {
            echo 'catch Exception';
        }
        echo 'End';
    }

在输出中只有“Enter”可见。我没有到达“终点”。 (我使用的是 PHP7)

谢谢

编辑: 用\Exception 替换所有Exception 解决了我的问题

【问题讨论】:

标签: php exception phpunit


【解决方案1】:

处理异常可能很棘手,尤其是当它们被称为Exception :-)

看看this (almost the same) question产生的所有反馈。

现在,只有与预期的类不匹配时才捕获异常。在这种情况下,肯定是因为不精确的 Exception 类名规范,这肯定会通过将它们指定为 \Exception 来解决。

正如上述问题线程中的评论者巧妙地指出的那样:

没有反斜杠的异常是特定于命名空间的,不会被匹配(或捕获)。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2022-11-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-11-05
    • 2012-09-04
    • 1970-01-01
    相关资源
    最近更新 更多