2

我想对控制器操作进行单元测试,并在执行它时遇到一些问题。我得到的错误如下:

SQLSTATE[42000]:语法错误或访问冲突:1064 您的 SQL 语法有错误;检查与您的 MySQL 服务器版本相对应的手册,以在第 1 行的“questionExists”附近使用正确的语法

方法:

问题存在

在问题模型中定义。

我的测试功能如下所示:

public function testView() {
        $result = $this->testAction('/questions/questions/view/1', array('return' => 'vars'));
    }

我要测试的控制器操作如下所示:

公共功能视图($id = null){

    if (!$this->Question->questionExists($id, 'id_virtual')) {
        throw new NotFoundException(__('Invalid question'));
    }
    $options = array('conditions' => array('Question.id_virtual' => $id));
    $this->set('question', $this->Question->find('first', $options));
}

所以这让我很困惑。谁能指出我正确的方向?

4

1 回答 1

0

未找到您的模型类,CakePHP 为该表动态创建一个实例,但这仅是基本的模型类。然后调用代码时,它会尝试在应用程序中不是您的 Question 模型的实例上调用该方法。你必须弄清楚会发生什么。

于 2013-12-22T00:04:57.860 回答