Tôi đang thử nghiệm một mô hình trong CakePHP 2 và đã chế giễu một mô hình như thế này:Tạo một mô hình PHPUnit chế giễu sử dụng cơ sở dữ liệu mặc định thay vì thử nghiệm trong 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));
Kể từ khi bất kỳ hoạt động với cơ sở dữ liệu làm tăng các lỗi sau:
"Database table mock__user_b6241a4cs for model User was not found."
tôi định nghĩa lại các thông tin mô hình:
$this->User->alias = 'User';
$this->User->useTable = 'users';
Bây giờ các công trình thử nghiệm tốt, nhưng nó đang sử dụng cơ sở dữ liệu $default
trong database.php
thay vì $test
. Điều gì có thể xảy ra?
Tại sao cấu hình cơ sở dữ liệu để kiểm tra các thay đổi khi sử dụng các đối tượng giả mạo? Nó có thể liên quan đến các điều khoản cơ sở dữ liệu gây ra đối tượng giả lập không thể tạo các bảng tùy chỉnh của nó không?
Cảm ơn!