0

我很难在 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'));
    }
}

有任何想法吗?非常感激。

4

0 回答 0