【问题标题】:Mock a public property on a static method?在静态方法上模拟公共属性?
【发布时间】:2015-01-06 21:21:04
【问题描述】:

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

Confide::user()->id

获取用户 ID。我试图模拟这个,所以它返回一个垃圾用户 ID。我可以使用 Laravel 的内置 Facade 模拟来很好地模拟 Confide::user()

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

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

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

【问题讨论】:

    标签: php unit-testing mocking


    【解决方案1】:

    怎么样

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

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

    【讨论】:

    • +_+ 显然我已经盯着这个太久了。
    猜你喜欢
    • 2011-04-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-09-18
    • 2015-08-14
    • 2011-03-24
    • 1970-01-01
    • 2012-02-11
    相关资源
    最近更新 更多