$this->post ($thread->path ().'/replies',$reply->toArray ()) 不报错?

  1. 如题,$this->post($thread->path().'/replies',$reply->toArray()),中的post动作返回的404、500之类的错误无法被检测到,怎么能抛出post的response错误?
  2. 函数
    public function unauthenticated_user_may_no_add_replies()
    {
    $this->expectException('Illuminate\Auth\AuthenticationException');
    $this->post('threads/1/replies',[]);
    }

    中的expectException跟上下文无关,不加其他语句也会直接抛出异常吧?

  3. 我的本地环境中倒是不会抛出Illuminate\Session\TokenMismatchException,不需要在执行命令前加APP_ENV=testing
《L01 基础入门》
我们将带你从零开发一个项目并部署到线上,本课程教授 Web 开发中专业、实用的技能,如 Git 工作流、Laravel Mix 前端工作流等。
《L02 从零构建论坛系统》
以构建论坛项目 LaraBBS 为线索,展开对 Laravel 框架的全面学习。应用程序架构思路贴近 Laravel 框架的设计哲学。
讨论数量: 1
洛未必达

1.在app\Exceptions\Handler.php文件中,render() 方法负责将给定的异常转换为将被发送回浏览器的 HTTP 响应,如下:

file

而该文件中的unauthenticated()方法会负责将认证异常转换成未认证的响应,如下:

file

由于我们在RepliesController.php中使用了auth中间件,当中间件检测到一个未认证的用户时,如果是AJAX 请求则会返回一个 401 的 JSON 响应,否则会重定向到名为login的路由(状态码为:302)。所以如果没有加上图 1 中的语句,则会生成 302 重定向响应;加上语句后我们提前抛出了异常,所以能够测试到。

2.正如第 1 点所说,对于一个未登录用于进行的提交评论的操作,我们会抛出AuthenticationException异常,所以我们只用检查异常的类型是否是Illuminate\Auth\AuthenticationException即可。

3.表示羡慕。

5年前 评论

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!