如何在Laravel PHPUnit测试中获得响应变量?

如何在Laravel PHPUnit测试中获得响应变量?,laravel,laravel-5,phpunit,laravel-testing,Laravel,Laravel 5,Phpunit,Laravel Testing,我正在测试控制器方法,并在测试中访问路由 然后,我想确保视图中返回了正确的模型,并加载了所有正确的关系 我知道我可以做到这一点: $this->assertViewHas("content"); 但是,如何验证返回到视图中的内容模型是否具有正确的类别(例如,类别)?i、 e.如何获取内容模型对象,然后执行以下操作 $this->assertEquals($content->category->name, "category 1"); ?使用调试器对其进行黑客攻击,我猜

我正在测试控制器方法,并在测试中访问路由

然后,我想确保视图中返回了正确的模型,并加载了所有正确的关系

我知道我可以做到这一点:

$this->assertViewHas("content");
但是,如何验证返回到视图中的内容模型是否具有正确的类别(例如,类别)?i、 e.如何获取内容模型对象,然后执行以下操作

$this->assertEquals($content->category->name, "category 1");

使用调试器对其进行黑客攻击,我猜您可以从以下响应中获得“内容”:

$content = $response->getOriginalContent()->getData()['content']
getData()返回作为数组发送到视图的数据。

使用:


为什么不抓取实际控制器方法并测试以确保它具有正确的信息?即使我抓取了实际控制器,它也会返回一个视图。如何从视图访问内容模型对象?我想这将是我问题的解决方案,但我不知道答案。检查,似乎可以使用类似于
->assertViewHas($key,$value)
@CalebAnthony的内容。是的,我看到了,但可能我感到困惑。我知道我可以做
->assertViewHas('content',$value)
,但我想做的是
->assertViewHas('content->category',$value)
,返回空值(我想是因为尝试访问视图的“内容”属性会返回一个有说服力的对象,而不是一个模型。我不太确定。或者是因为视图没有“内容->类别”属性。但无论如何,我都无法让它做我想做的事。您使用的是什么版本的Laravel 5?
$response->assertSee("category 1");