使用PHPUnit

时间:2017-04-16 22:35:43

标签: php unit-testing mocking

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

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

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

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

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

如何让mock返回一个真正的字符串而不是这个对象?

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

PHPUnit v5.7.19

PHP v7.1.4

1 个答案:

答案 0 :(得分:0)

我错误地使用了PHPUnit API。它应如下所示:

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

注意->will而不是->willReturn