【问题标题】:Mock a return value of a method with PHPUnit使用 PHPUnit 模拟方法的返回值
【发布时间】:2017-09-12 13:31:00
【问题描述】:

我想模拟一个类的方法来返回特定的值:

$this->mock
    ->method('method')
    ->willReturn($this->returnValue('foo'))
;

这个方法将被另一个使用它的结果的方法在内部调用。该方法实际上正在被模拟,但它返回:

class PHPUnit_Framework_MockObject_Stub_Return#471 (1) {
  protected $value =>
  string(3) "foo"
}

而不是字符串。并且使用此方法的代码在内部中断。

如何让模拟返回一个真实的字符串而不是这个对象?

我尝试了returnCallback,但它返回的东西更奇怪......

PHPUnitv5.7.19

PHPv7.1.4

【问题讨论】:

    标签: php unit-testing mocking


    【解决方案1】:

    我错误地使用了PHPUnit API。它应该是这样的:

    $this->mock
        ->method('method')
        ->will($this->returnValue('foo'))
    ;
    

    注意->will 而不是->willReturn

    【讨论】:

      猜你喜欢
      • 2016-03-21
      • 1970-01-01
      • 2015-01-02
      • 2013-03-09
      • 2013-10-15
      • 1970-01-01
      • 2022-12-09
      • 2022-11-07
      • 1970-01-01
      相关资源
      最近更新 更多