首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用Mockery模拟一个雄辩的模型?

如何使用Mockery模拟一个雄辩的模型?
EN

Stack Overflow用户
提问于 2015-04-17 06:37:29
回答 1查看 191关注 0票数 3

我试着这样做:

代码语言:javascript
复制
$this->dsMock = Mockery::mock('Eloquent', 'API\V1\DataSet');
$this->app->instance('API\V1\DataSet', $this->dsMock);
$this->dsMock->shouldReceive('isLocalData')->once()->andReturn(true);

然后,在被测类内部:

代码语言:javascript
复制
$test = DataSet::isLocalData($dataSetId);

但是,DataSet类并没有被模仿。它还在尝试访问数据库。为什么?

EN

回答 1

Stack Overflow用户

发布于 2015-04-19 08:46:13

可能的问题是Laravel不幸地使用了Façade's (也是工厂)。如果DataSet已经使用Façade实例化了,它将一直返回相同的类,你不会得到一个模拟的版本。

我不记得你是否可以在不使用Laravel的Façade的情况下实例化你的类。您必须记住,当您在应用程序中静态调用DataSet时,您实际上引用的不是API\V1\DataSet,而是管理它的其他东西。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/29687176

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档