Как получить частную собственность из объекта phpUnit Mock - PullRequest
0 голосов
/ 27 июня 2018

Например, у меня есть класс

class Car
{
   private $color='red';
}

После того, как я делаю макет объекта

$carMock = $this->getMockBuilder(Car::class)->getMock();

Так что теперь я хочу получить частный цвет собственности класса автомобиля

Как это сделать?!

Я могу сделать публичный метод, как getCar, и он будет работать, но я хочу поискать другой путь.

Я пытался использовать ReflectionClass для него, но это было неправильно.

1 Ответ

0 голосов
/ 26 апреля 2019
public function setProtectedProperty($object, $property, $value) {
    $reflection = new \ReflectionClass($object);
    $reflection_property = $reflection->getProperty($property);
    $reflection_property->setAccessible(true);
    $reflection_property->setValue($object, $value);
}

public function getProtectedProperty($object, $property) {
    $reflection = new \ReflectionClass($object);
    $reflection_property = $reflection->getProperty($property);
    $reflection_property->setAccessible(true);
    $reflection_property->getValue($object);
}   
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...