我很难在 CakePHP 2.2.5 中模拟受保护的方法,当我将方法更改为 public 时,一切正常,但是一旦它受到保护,我会收到以下错误:
PDOException SQLSTATE[42000]:语法错误或访问冲突:1064 您的 SQL 语法有错误;检查与您的 MySQL 服务器版本相对应的手册,以在第 1 行的“is_uploaded_file”附近使用正确的语法
我的模型看起来像这样:
<?php
class Contact extends AppModel {
public $name = 'Contact';
protected function is_uploaded_file($tmp_name) {
return is_uploaded_file($tmp_name);
}
}
我的测试如下所示:
<?php
App::uses('Contact', 'Model');
class ContactTest extends CakeTestCase {
public function setUp() {
parent::setUp();
$this->Contact = ClassRegistry::init('Contact');
}
public function testStub() {
$stub = $this->getMock('Contact',array('is_uploaded_file'));
// Configure the stub.
$stub->expects($this->any())
->method('is_uploaded_file')
->will($this->returnValue(TRUE));
$this->assertEquals(TRUE, $stub->is_uploaded_file('tmp'));
}
}
有任何想法吗?非常感激。