Estoy probando un modelo en CakePHP 2 y he burlado de un modelo como este:La creación de un modelo de PHPUnit burlado utiliza la base de datos por defecto en lugar de la prueba en CakePHP
$this->User = $this->getMock('User', array(
'_saveUploadedFile',
'_removeUploadedFile',
));
$this->User->expects($this->any())
->method('_saveUploadedFile')
->with($data, Configure::read('App.myDirectory'), true);
->will($this->returnValue(true));
$this->User->expects($this->any())
->method('_removeUploadedFile')
->with($data, Configure::read('App.myDirectory'))
->will($this->returnValue(true));
Desde cualquier operación con la base de datos plantea el siguiente error:
"Database table mock__user_b6241a4cs for model User was not found."
redefiní la información del modelo:
$this->User->alias = 'User';
$this->User->useTable = 'users';
Ahora funciona la prueba bien, pero está utilizando la base de datos $default
en database.php
en lugar de $test
. ¿Qué puede estar pasando?
¿Por qué la configuración de la base de datos para las pruebas cambia cuando se utilizan objetos simulados? ¿Podría estar relacionado con los permisos de la base de datos que hacen que el objeto burlado no pueda crear sus tablas personalizadas?
Gracias!