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

How to get Response variables in a Laravel PHPUnit test?

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

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

我知道我可以做到:

$this->assertViewHas("content");

但是我如何才能验证返回到视图中的内容模型是否具有正确的类别,例如类别?即我怎样才能得到内容模型对象然后做类似

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

?

您可以从这样的回复中获取您的内容:

$content = $response->getOriginalContent()->getData()['content'];

getData() returns 将数据作为数组发送到视图。

使用assertSee():

$response->assertSee("category 1");

您可以使用以下方法获取传递给视图的数组:

$response->original->getData()

这来自Illuminate/Http/ResponseTrait (link to docs).

您可以使用

$your_desired_data = $response->assertSee('var_tag');

如果它是一个数据数组,您可以通过以下方式访问它的数据:

$first_name = $your_desired_data['first_name'];