2011-01-27 31 views
1

代碼:模擬使用PHPUnit的回報「NULL」,當類被稱爲創造

 

$mockObject = $this->getMock('ORM_User'); 

$mockObject->expects($this->at(0)) 
    ->method('xxx') 
    ->with($this->equalTo('a')) 
    ->will($this->returnValue('aaa')); 

$mockObject->expects($this->at(1)) 
    ->method('xxx') 
    ->with($this->equalTo('b')) 
    ->will($this->returnValue('bbb')); 

var_dump("-".$mockObject->xxx('a')); 
var_dump($mockObject->xxx('b')); 

$tmp = new ORM_User(); 
var_dump($tmp->xxx('a')); 
var_dump($tmp->xxx('b')); 

輸出:

 


string(4) "-aaa" 
string(3) "bbb" 
NULL 
NULL 

+3

在你的代碼中,模擬模塊返回數據,實際對象返回空值。 – zerkms 2011-01-27 04:00:17

+0

zerkms,有一些方法可以做到嗎?謝謝 – 2011-01-27 04:17:08

回答

3

的確實給什麼你告訴它也並儘可能我可以正常工作看見。

您創建一個「假」ORM_User並告訴xxx函數返回「aaa」和「bbb」,並且它會這樣做。

然後,您創建一個實際 ORM_USER並調用它,返回null,但這是phpunit的範圍。你只是在那裏打電話給真正的班級,我不知道你在這裏得到了什麼。

也許告訴我們你在做什麼?