2017-06-15 13 views
2

私はオブジェクトをモックしてプロパティをポピュレートする方法を前方にロックしています。この方法は、私はPHPUnitからgetMockBuilder()方法と$objectのモックを作成する必要がありますユニットテストにPHPUnitオブジェクトのモックをモックする

class MyClass { 

    private $_object; 

    public function methodUnderTest($object) { 
     $this->_object = $object; 
     return $this->_object->property 
    } 
} 

: は、ここに別のオブジェクトのプロパティを使用する方法の例です。しかし、私はちょうど方法だけ$objectのプロパティを模擬する方法を見つけることができません。あなたは、通常のオブジェクトをどうしたいよう

+1

なぜそれらを嘲笑せずにこれらのプロパティを設定するだけですか? – akond

+0

私は実際にそれをやろうとしましたが、なぜ今日までそれがうまくいかなかったのか分かりません。 頭をアップしてくれてありがとう、あなたは実際にオブジェクトと同じように擬似オブジェクトのプロパティを実際に設定することができます –

+0

幸いにも私は完全にクレイジーではありません、あなたが提案したシンプルなソリューションはほとんどのクラスでうまくいきますが、それは動作せず、単にNULLを返します –

答えて

2

嘲笑オブジェクトにプロパティを追加するには、単にそれらを設定します。

$mock = $this->getMockBuilder('MyClass') 
      ->disableOriginalConstructor 
      ->getMock(); 

$mock->property = 'some_value'; 

$mock->propertyは今

akond から'some_value'

感謝を返します。

Ps私のプロジェクトでは、これはいくつかのクラスでは動作しません。私は$mock->propertyを呼び出してみると返信します。NULL

+1

元のクラスの中で魔法のメソッドを使用しないようにしてください。 – vivanov

関連する問題