在静态方法上模拟 public 属性?
Mock a public property on a static method?
我正在使用 Confide
,这需要您执行类似
的操作
Confide::user()->id
获取用户ID。我正在尝试模拟它,因此它 returns 是一个垃圾用户 ID。我可以通过使用 Laravel 内置的 Facade mocking
来模拟 Confide::user()
Confide::shouldReceive('user')->once()->andReturn('blah');
如果我运行 Confide::user()
它 returns blah
.
但是如果我运行 Confide::user()->id
它如何添加属性 returns 模拟值?
怎么样
Confide::shouldReceive('user')->once()->andReturn( (object)array('id' => 42) );
这样您就可以创建具有单个属性 id = 42
的 stdClass
实例。
我正在使用 Confide
,这需要您执行类似
Confide::user()->id
获取用户ID。我正在尝试模拟它,因此它 returns 是一个垃圾用户 ID。我可以通过使用 Laravel 内置的 Facade mocking
来模拟Confide::user()
Confide::shouldReceive('user')->once()->andReturn('blah');
如果我运行 Confide::user()
它 returns blah
.
但是如果我运行 Confide::user()->id
它如何添加属性 returns 模拟值?
怎么样
Confide::shouldReceive('user')->once()->andReturn( (object)array('id' => 42) );
这样您就可以创建具有单个属性 id = 42
的 stdClass
实例。