Laravel 测试无异常,抛出异常

Posted

技术标签:

【中文标题】Laravel 测试无异常,抛出异常【英文标题】:Laravel test without exception, throws exception 【发布时间】:2020-08-18 03:32:41 【问题描述】:

我想使用 Laravel 和 phpUnit 测试数据库中缺失的记录。

我已设置我的测试并设置该方法引发异常。测试报错,因为异常已经抛出。

这是我的测试:

/** @test */
    public function myTest()
    
        $this->withoutExceptionHandling();
        $this->_createMemberRequest(['email_address' => $this->email_address]);
    

测试结果:

有 1 个错误:

1) 我的测试

Exceptions\InvalidEmailException:电子邮件已存在

我做错了什么?

感谢您的帮助!

【问题讨论】:

使用 withoutExceptionHandling 获取有关此问题发生原因的详细信息的要点。所以你的测试已经告诉你问题出在哪里。您首先需要解决该问题,然后继续进行测试,直到找到您正在寻找的适当异常。 【参考方案1】:

$this->withoutExceptionHandling(); 的全部意义在于当你遇到一个时髦的错误并且你不知道该怎么做或者错误不够清楚但如果你正在尝试测试你的表单验证 ('name' => 'required') 或类似的东西存储请求时,您必须删除 $this->withoutExceptionHandling(); 才能通过测试。

【讨论】:

以上是关于Laravel 测试无异常,抛出异常的主要内容,如果未能解决你的问题,请参考以下文章

laravel save() 方法是不是抛出异常?

Laravel 5刀片在出现错误而不是抛出异常时显示空白页面

如何从 laravel5 中的中间件抛出禁止的异常?

Laravel 错误:方法 Illuminate\View\View::__toString() 不能抛出异常

Laravel 7 模型工厂为 faker 抛出“InvalidArgumentException: Unknown formatter”异常

Laravel 验证器抛出异常而不是重定向回来