在一个单元测试中,写多个http 请求,但只走一次构造函数。

在一个单元测试中

    public function testRemove()
    {
        $response = $this->user(1)
            ->post('api/1/remove', [
            ]);
        $response->assertJson(['code' => -1]);

        $response = $this->user(2)
            ->post('api/1/remove', [
            ]);
        $response->assertJson(['code' => 1]);
    }
  • 请求2次是为了覆盖不用用户的角色
  • user()方法 主要是 赋值 新的user auth()->setUser(User::find($id));

问题

  • 第一次请求时会 走到对应类中的 构造函数
    public function __construct()
      {
          $this->user = auth()->user();
      }
  • 第二请求就越过了。
《L01 基础入门》
我们将带你从零开发一个项目并部署到线上,本课程教授 Web 开发中专业、实用的技能,如 Git 工作流、Laravel Mix 前端工作流等。
《L05 电商实战》
从零开发一个电商项目,功能包括电商后台、商品 & SKU 管理、购物车、订单管理、支付宝支付、微信支付、订单退款流程、优惠券等
最佳答案

不小心误操作删除了之前的评论,简单的来说就是: “对应类中”的 构造函数,中的 对应的类 实例。

3年前 评论
讨论数量: 6

你只实例化一次肯定只走一次咯

3年前 评论

@WindyLater 您好 能具体说下,我再哪应该实例化 两次呢

3年前 评论

意思是说 我应该写两个单元测试方法,而不是 在一个单元测试把所有情况都写了?

3年前 评论

不小心误操作删除了之前的评论,简单的来说就是: “对应类中”的 构造函数,中的 对应的类 实例。

3年前 评论

@bigbug 我前面说的对应类 其实就是 controller

3年前 评论

@bigbug 我之前 觉得 每一次的HTTP测试请求 都是 重新的实例的

3年前 评论
洛未必达 3年前
lai (作者) (楼主) 3年前

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