Я тестирую модель в CakePHP 2 и смоделировал модель следующим образом:
$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));
Поскольку при любой операции с базой данных возникает следующая ошибка:
"Database table mock__user_b6241a4cs for model User was not found."
Я переопределилинформация о модели:
$this->User->alias = 'User';
$this->User->useTable = 'users';
Теперь тест работает хорошо, но он использует базу данных $default
в database.php
вместо $test
.Что может происходить?
Почему конфигурация базы данных для тестирования изменяется при использовании макетов объектов?Может ли это быть связано с разрешениями базы данных, которые приводят к тому, что смоделированный объект не может создавать свои собственные таблицы?
Спасибо!