0

CakePHP 2.2.5 で保護されたメソッドをモックするのに苦労しています。メソッドを public に変更するとすべて正常に動作しますが、保護されると次のエラーが発生します。

PDOException SQLSTATE[42000]: 構文エラーまたはアクセス違反: 1064 SQL 構文にエラーがあります。1行目の「is_uploaded_file」の近くで使用する正しい構文については、MySQLサーバーのバージョンに対応するマニュアルを確認してください

私のモデルは次のようになります。

<?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