我正在使用Laravel并模拟像
这样的Facade对象Confide::shouldReceive('user')->atLeast(1)->andReturn( (object) array('id' => 42) );
var_dump(Confide::user()->id); // returns int(42)
Confide::shouldReceive('user')->atLeast(1)->andReturn( (object) array('id' => 1) );
var_dump(Confide::user()->id); // returns int(42) but should be int(1)
但是var_dump(Confide::user()->id);
始终返回42.即使第二个应该返回1
,因为我将其设置为1
。
我做错了什么?
答案 0 :(得分:2)
Confide::shouldReceive('user')->atLeast(1)->andReturn(
(object) array('id' => 42),
(object) array('id' => 1)
);
所以这必须至少运行一次。
第一个调用将返回一个带有id = 42
的对象,第二个调用将返回一个带有id = 1
的对象。
PS:我从未使用过嘲弄,我只是检查了它的文档http://docs.mockery.io/en/latest/reference/expectations.html