Estoy intentando crear un objeto simulado en PHP y PHPUnit. Hasta el momento, tengo esto:Configuración de métodos múltiples en PHPUnit objetos simulados
$object = $this->getMock('object',
array('set_properties',
'get_events'),
array(),
'object_test',
null);
$object
->expects($this->once())
->method('get_events')
->will($this->returnValue(array()));
$mo = new multiple_object($object);
Haciendo caso omiso de mis nombres de objeto horriblemente ambiguas para el minuto, entiendo que lo que he hecho es
- Creación de un objeto de burla, con 2 métodos para configurar,
- Se configuró el método 'get_events' para devolver una matriz en blanco, y
- Se dejó la simulación en el constructor.
Lo que me gustaría hacer ahora es configurar el segundo método, pero no encuentro nada que explique cómo hacerlo. Quiero hacer algo como
$object
->expects($this->once())
->method('get_events')
->will($this->returnValue(array()))
->expects($this->once())
->method('set_properties')
->with($this->equalTo(array()))
o algo así, pero eso no funciona. ¿Cómo debo hacer eso?
Tangencialmente, ¿esto indica que he estructurado mal mi código, si necesito configurar más de un método para probar?
Yo probé eso, y no se parecía a trabajar. –
Parece que de hecho es la forma correcta. Verifica mi edición Tal vez hay algo más mal? Si compartes un fragmento de código más completo, tal vez otros o yo podamos ayudarte. –
Lo intenté de nuevo, y funcionó. ¡Gracias por tu ayuda! –