嘲弄Laravel雄辩的水合关系

时间:2014-03-07 01:32:13

标签: unit-testing laravel phpunit eloquent mockery

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

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

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

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

如果你需要一个例子,我可以更新问题,但我认为我已经非常明确了;)

祝你好运

1 个答案:

答案 0 :(得分:1)

我对这一切都不熟悉,但我已经读过你可以使用AspectMock来测试一个Eloquent模型。 Jeffery Way有一个video explaining how it's done。这是Codeception的original post explaining AspectMock