Laravel 5.7。我有这样的测试:
/** @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());
}
它调用 Controller 中的一个端点来尝试获取登录用户:
public function update_foobar($request)
{
$userId = auth()->user()->id;
Foobar::create(['userId' => $userId, 'foobar' => $request->foobar]);
}
$id
的值为null
。我怎样才能让测试工作,以便 Controller 可以使用用户的详细信息?
最佳答案
$user = factory(User::class)->states('app')->make();
make()
不会保存到数据库中,因此它们没有 ID。我想你是说 create()
?
关于php - 在 Laravel 中测试时获取作为用户的 ID,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54906538/