我的单元测试非常简单。我的问题不在于“测试/查询有什么问题”,因为它是如何通过获取生成的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更加详细,以便我可以看到正在生成什么查询?
答案 0 :(得分:1)
看起来最好的办法是捕获PDOException并检查堆栈跟踪,因为这包括准备好的查询。
所以说你在使用$this->User->save($data)
时遇到了麻烦:
try {
$this->User->save($data);
} catch (PDOException $e) {
var_dump(array_slice($e->getTrace(), 0, 3));
}
_execute
调用应该在顶部附近,生成的查询包含在args
中。