2017-04-16 139 views
0

的方法我想嘲弄一個類的方法返回的特定值的返回值:模擬使用PHPUnit

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

這種方法將在內部通過,這將使用它的結果的另一種方法調用。該方法實際上被模擬,但它返回這個:

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

而不是一個字符串。內部使用此方法的代碼會中斷。

如何讓一個模擬的返回一個真正的字符串,而不是這個對象?

我試過returnCallback但它返回一些更奇怪的......

PHPUnit v5.7.19

PHP v7.1.4

回答

0

我用PHPUnit API錯誤。它應如下所示:

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

->will代替->willReturn