2011-01-27 9 views
1

コード:モッククラスが呼ばれた「NULL」をPHPUnitのリターンを使用して作成さ

出力
 

$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

コードモックでデータを返し、実際のオブジェクトがnullを返します。 – zerkms

+0

zerkms、それを行うにはいくつかの方法がありますか?ありがとうございました –

答えて

3

ザ・はまさにあなたもそれを伝えるために行い、限り私ができるように正常に動作しますそれを見てください。

"偽の" ORM_Userを作成し、 "aaa"と "bbb"を返すようにxxx関数に指示します。

実数 ORM_USERを作成し、それを呼び出すとnullが返されますが、これはphpunitの範囲です。あなたは本当のクラスをそこに呼んでいるだけです。私はあなたがこれでそれを得ているところを見ません。

多分あなたに何をしようとしているのか教えてください。

+0

追加:あなた(Felipe)は '__call()'を使って未定義のメソッドへの呼び出しをすべて捕まえ、 'null'を返すようです。もしそうでなければ、メソッドの命名規則( 'xxx()'は良い名前ではない)を考えるべきです。 – KingCrunch

+0

KingCrunch、名前は "xxx"のみの例でした:D –

+0

edorian、私はついにそれを行います...ありがとう –

関連する問題