1

我的单元测试非常简单。我的问题与其说是“测试/查询有什么问题”,不如说是如何通过获取生成的 SQL 查询来解决 APP/test.php 中的这些问题。

以下是我的单元测试:

public function testMatchingPasswords() {
    debug($this->User->save($this->genericSaveData));
}

我收到以下错误:

SQLSTATE[42S22]: Column not found: 1054 Unknown column 'User.username' in 'where clause'

我理解这个问题,如果我能看到生成的 SQL 查询,我应该能够进一步解决问题并解决它。但是在 test.php 上它不显示生成的 SQL 查询。如何使 test.php 更详细,以便我可以看到正在生成的查询?

4

1 回答 1

1

看起来最好的办法是捕获 PDOException 并检查堆栈跟踪,因为这包括准备好的查询。

所以说你有麻烦$this->User->save($data)你可以这样做:

try {
    $this->User->save($data);
} catch (PDOException $e) {
    var_dump(array_slice($e->getTrace(), 0, 3));
}

_execute调用应该相当接近顶部,生成的查询包含在args.

于 2014-09-11T16:50:38.777 回答