在静态方法上模拟公共属性?

时间:2015-01-06 21:21:05

标签: php unit-testing mocking

我正在使用Confide,这需要您执行类似

的操作
Confide::user()->id

获取用户ID 。我试图模仿这个,所以它返回一个垃圾用户ID。我可以使用 Laravel 内置的 Facade 模拟

来模拟Confide::user()
Confide::shouldReceive('user')->once()->andReturn('blah');

如果我运行Confide::user(),则返回blah

但是如何添加一个属性,所以如果我运行Confide::user()->id它会返回一个模拟值?

1 个答案:

答案 0 :(得分:2)

怎么样

Confide::shouldReceive('user')->once()->andReturn( (object)array('id' => 42) );

这样您就可以使用单个属性stdClass创建id = 42的实例。