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


Mock a public property on a static method?

我正在使用Confide它需要你做类似的事情

Confide::user()->id

获取用户 ID。我试图模拟它,所以它返回一个垃圾用户ID。我可以通过使用拉拉维尔内置的立面模拟来模拟Confide::user()很好

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

如果我运行Confide::user()它会返回blah.

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

怎么样

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

这样,您就可以创建具有单个属性id = 42stdClass实例。