尝试在我的 cakePHP 2.0 应用程序中测试某些东西时,我遇到了最奇怪的问题。我在模型中有一个函数,它查询数据库以检查应用程序是否在过去 25 天内已发送通知:
public function checkIfNotified($userId){
$query = 'SELECT count(`user_id`) AS notify '.
'FROM `churn_stats` '.
'WHERE `user_id` = '. $userId.' '.
'AND `notified` = 1 '.
'AND TIME_TO_SEC(TIMEDIFF(NOW(),`created`)) <= 2160000 ';
$this->log($query);
$result = $this->query($query);
return $result;
}
我正在做一些单元测试来检查该方法是否有效,所以我正在创建一个记录并尝试测试它是否返回 true,如下所示:
$data['notified'] = 1;
$data['user_id'] = $userId;
$this->ChurnStats->create();
$this->ChurnStats->save($data);
$notified = $this->ChurnStats->checkIfNotified($userId);
print_r($notified);
结果之后(这是错误的结果,因为我已经插入了一行!):
Array
(
[0] => Array
(
[0] => Array
(
[notify] => 0
)
)
)
但是,我运行由数据库中的代码生成的确切查询,结果是:
我已经浪费了很多时间,我不知道出了什么问题:(。