assertJson和assertSee show对空成员错误的调用

时间:2019-01-30 11:01:45

标签: laravel phpunit laravel-5.1

我试图为我的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

1 个答案:

答案 0 :(得分:0)

这是因为您首先要链接assertResponseStatus(),并且它不会返回 fluent 对象。

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

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

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