Quiero burlarme de un método de una clase y ejecutar una devolución de llamada que modifique el objeto dado como parámetro (usando PHP 5.3 con PHPUnit 3.5.5).Modificar objetos en returnCallback() de PHPUnit Mocks
Vamos a decir que tengo la clase siguiente:
class A
{
function foobar($object)
{
doSomething();
}
}
Y este código de configuración:
$mock = $this->getMockBuilder('A')->getMock();
$mock->expects($this->any())->method('foobar')->will(
$this->returnCallback(function($object) {
$object->property = something;
}));
Por alguna razón, el objeto no quede modificado. En var_dump
ing $object
Veo que es el objeto correcto. ¿Podría ser que el objeto se pasa por valor? ¿Cómo puedo configurar el simulacro para recibir una referencia?
¡Muchas gracias por esta respuesta detallada y bien investigada! Aunque ahora tengo que pensar en otra forma de probar mi situación, es bueno saber que este es el comportamiento esperado. –