Voglio prendere in giro un metodo di una classe ed eseguire un callback che modifica l'oggetto dato come parametro (utilizzando PHP 5.3 con PHPUnit 3.5.5).Modifica oggetti in returnCallback() di PHPUnit Mocks
Mettiamoci dire che ho la seguente classe:
class A
{
function foobar($object)
{
doSomething();
}
}
E questo codice di installazione:
$mock = $this->getMockBuilder('A')->getMock();
$mock->expects($this->any())->method('foobar')->will(
$this->returnCallback(function($object) {
$object->property = something;
}));
Per qualche motivo l'oggetto non viene modificato. Su var_dump
ing $object
vedo che è l'oggetto giusto. Potrebbe essere che l'oggetto venga passato per valore? Come posso configurare il mock per ricevere un riferimento?
Grazie mille per questa risposta dettagliata e ben studiata! Anche se ora devo pensare ad un altro modo per testare la mia situazione, è bene sapere che questo è un comportamento previsto. –