每次我尝试测试一个包含存储库的类时,我都会遇到同样的问题:
如果Eloquent类在执行查询后“保湿”受保护的数组关系属性,我理论上可以使用模拟的Collection / Resultset填充此属性,因此在我的测试中我会说$user->profiles
之类的内容(属性没有括号)我可以检索我的模拟数据并轻松测试模型。
我的问题是:有没有办法让Mockery调用__call
方法而不发出“找不到属性”错误消息?
到目前为止,我实现此目的的唯一方法是将属性直接应用于模拟对象。这种方法的问题在于,这种方式我无法断言数据是否从存储库中读取
如果你需要一个例子,我可以更新问题,但我认为我已经非常明确了;)
祝你好运
答案 0 :(得分:1)
我对这一切都不熟悉,但我已经读过你可以使用AspectMock来测试一个Eloquent模型。 Jeffery Way有一个video explaining how it's done。这是Codeception的original post explaining AspectMock。