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

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

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

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

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

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

最好的问候

【问题讨论】:

    标签: unit-testing laravel phpunit eloquent mockery


    【解决方案1】:

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

    【讨论】:

      猜你喜欢
      • 2015-03-14
      • 2018-11-28
      • 2015-01-11
      • 2021-06-03
      • 2020-03-26
      • 1970-01-01
      相关资源
      最近更新 更多