dongzhi8487 2019-02-27 05:23
浏览 108
已采纳

在Laravel中进行测试时,可以充当用户的id

Laravel 5.7. I have a test like this:

/** @test */
public function do_nothing_test()
{
    $user = factory(User::class)->states('app')->make();
    $this->actingAs($user, 'api');
    $response = $this->postJson('some_endpoint', ['foobar' => 3]);
    $this->assertEquals(1, Foobar::count());
}

which calls an endpoint in a controller that tries to get the logged in user:

public function update_foobar($request)
{
    $userId = auth()->user()->id;
    Foobar::create(['userId' => $userId, 'foobar' => $request->foobar]);
}

The value of $id is null. How can I get the test to work so that the user's details are available to the controller?

  • 写回答

1条回答 默认 最新

  • dongtai419309 2019-02-27 05:54
    关注
    $user = factory(User::class)->states('app')->make();
    

    make() doesn’t save to the database, so they won’t have an ID. I think you mean create()?

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
编辑
预览

报告相同问题?

悬赏问题

  • ¥15 PADS Logic 原理图
  • ¥15 PADS Logic 图标
  • ¥15 电脑和power bi环境都是英文如何将日期层次结构转换成英文
  • ¥20 气象站点数据求取中~
  • ¥15 如何获取APP内弹出的网址链接
  • ¥15 wifi 图标不见了 不知道怎么办 上不了网 变成小地球了
手机看
程序员都在用的中文IT技术交流社区

程序员都在用的中文IT技术交流社区

专业的中文 IT 技术社区,与千万技术人共成长

专业的中文 IT 技术社区,与千万技术人共成长

关注【CSDN】视频号,行业资讯、技术分享精彩不断,直播好礼送不停!

关注【CSDN】视频号,行业资讯、技术分享精彩不断,直播好礼送不停!

客服 返回
顶部