PhpUnit – mock – set interne protected / private variable
Publicités
En utilisant des mock il est souvent nécessaire de donner une valeur a une variable private ou protected. Pour ce faire il suffit d’utiliser la classe Reflection.
$basket = $this->getMockBuilder('Basket')
->disableOriginalConstructor()
->getMock();
$basketReflection = new ReflectionClass($basket);
$sessionId = $basketReflection->getProperty('sessionId');
$sessionId->setAccessible(true);
$sessionId->setValue($basket,'abc');
ainsi la valeur de sessionId dans notre Mock sera de ‘abc’.
Publicités