dongzhi8487 2019-02-27 13: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 13: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 用土力学知识进行土坡稳定性分析与挡土墙设计
  • ¥70 PlayWright在Java上连接CDP关联本地Chrome启动失败,貌似是Windows端口转发问题
  • ¥15 帮我写一个c++工程
  • ¥30 Eclipse官网打不开,官网首页进不去,显示无法访问此页面,求解决方法
  • ¥15 关于smbclient 库的使用
  • ¥15 微信小程序协议怎么写
  • ¥15 c语言怎么用printf(“\b \b”)与getch()实现黑框里写入与删除?
  • ¥20 怎么用dlib库的算法识别小麦病虫害
  • ¥15 华为ensp模拟器中S5700交换机在配置过程中老是反复重启
  • ¥15 uniapp uview http 如何实现统一的请求异常信息提示?