嘲笑 Laravel 雄辩的水合关系

Posted

技术标签:

【中文标题】嘲笑 Laravel 雄辩的水合关系【英文标题】:Mocking Laravel's eloquent hydrated relationships 【发布时间】:2014-04-09 23:44:37 【问题描述】:

每次我尝试测试一个包含存储库的类时,我都会遇到同样的问题:

如果 Eloquent 类在执行查询后“水合”受保护的数组关系属性,理论上我可以使用模拟集合/结果集填充此属性,因此在我的测试中我会说类似 $user->profiles 的内容(不带括号的属性)我可以轻松检索我的模拟数据并测试模型。

我的问题是:有没有办法让 Mockery 调用 __call 方法而不发出“找不到属性”错误消息?

到目前为止,我实现的唯一方法是将属性直接应用于模拟对象。这种方法的问题在于,如果数据是从存储库中读取的,我无法断言

如果您需要一个示例,我可以更新问题,但我认为我已经很明确了 ;)

最好的问候

【问题讨论】:

【参考方案1】:

我对这一切都很陌生,但我读过您可以使用AspectMock 来测试 Eloquent 模型。 Jeffery Way 有一个video explaining how it's done。这是 Codeception 的original post explaining AspectMock。

【讨论】:

以上是关于嘲笑 Laravel 雄辩的水合关系的主要内容,如果未能解决你的问题,请参考以下文章

雄辩的关系,模型的链接(Laravel 5.4)

Laravel - 雄辩的自我关系

Laravel - 节省雄辩的关系

Laravel 雄辩的一对一通过(级别/树)关系

Laravel,雄辩的 n:m 关系

laravel 雄辩的关系查询