web-dev-qa-db-ja.com

PHPUnitオブジェクトのプロパティのモック

オブジェクトをモックし、そのプロパティを設定する方法を前に進めています。別のオブジェクトのプロパティを使用するメソッドの例を次に示します。

_class MyClass {

    private $_object;

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

このメソッドを単体テストするには、PHPUnitgetMockBuilder()メソッドで_$object_のモックを作成する必要があります。しかし、メソッドだけではなく_$object_のプロパティをモックする方法が見つかりません。

16

模擬オブジェクトにプロパティを追加するには、オブジェクトで通常行うようにプロパティを設定するだけです。

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

$mock->property = 'some_value';

$mock->property'some_value'を返すようになりました

akondに感謝

追伸私のプロジェクトでは、これは一部のクラスでは機能せず、$mock->propertyを呼び出そうとするとNULLを返すだけです。

18