【发布时间】:2017-08-04 00:05:37
【问题描述】:
我正在测试一个控制器方法,并且我正在测试中访问一个路由。
然后我想确保在视图中返回了正确的模型并加载了所有正确的关系。
我知道我可以做到:
$this->assertViewHas("content");
但是如何验证返回到视图中的内容模型是否正确,例如类别?即我怎样才能获得内容模型对象,然后做类似的事情
$this->assertEquals($content->category->name, "category 1");
?
【问题讨论】:
-
为什么不抓取实际的控制器方法并测试以确保它具有正确的信息?
-
即使我抓住了实际的控制器,它也会返回一个视图。如何从视图访问内容模型对象?我想这可以解决我的问题,但我不知道答案。
-
检查source code,看来您可以使用
->assertViewHas($key, $value)之类的东西。 -
@CalebAnthony 是的,我已经看到了,但也许我很困惑。我知道我可以做
->assertViewHas('content', $value),但我想做的是->assertViewHas('content->category', $value),这会返回null(我认为是因为尝试访问视图的“内容”属性会返回一个雄辩的对象而不是模型。我不太确定。或者因为视图没有'content->category'属性。但无论如何,我无法让它做我想做的事。
标签: php laravel phpunit laravel-testing