assertJson 和 assertSee 显示调用 null 成员错误

assertJson and assertSee show call to a null member error

我正在尝试为我的 API 开发测试,

这是我的代码:

public function testFirstAPI()
    {
        $user = \User::find(1);
        $r = $this
            ->actingAs($user)
            ->json('put', route('updateUser'),['lock' => 'true']);
        $r->assertResponseStatus(200)->seeJson(['success' => true]);
    }

这个测试会起作用,当我使用 $r->dump() 时,我可以在响应中找到 success

但我不知道为什么 seeJson 显示此错误:

Symfony\Component\Debug\Exception\FatalErrorException]
  Call to a member function assertJson() on null

这是因为您首先链接 assertResponseStatus() 而它没有 return 一个 fluent 对象。

一个解决方案是将其作为链中的最后一个断言:

public function testFirstAPI()
{
    $user = \User::find(1);

    $this->actingAs($user)
        ->json('put', route('updateUser'), ['lock' => 'true'])
        ->seeJson(['success' => true])
        ->assertResponseStatus(200)
}