我在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'));
}
}
有什么想法吗?非常感谢。