【发布时间】:2013-03-15 02:53:29
【问题描述】:
有人知道为使用 MySQL 存储过程的 CakePHP 2.3.1 应用程序开发单元测试的正确方法吗?
我查看过蛋糕网站,但有关测试的文档并不多。我也检查了 SO 和 Google - 似乎找不到问题/情况的提及。
单元测试使用的是固定装置,而不是数据的真实数据库。
非常感谢任何帮助/指针!
J
【问题讨论】:
标签: mysql unit-testing cakephp stored-procedures
有人知道为使用 MySQL 存储过程的 CakePHP 2.3.1 应用程序开发单元测试的正确方法吗?
我查看过蛋糕网站,但有关测试的文档并不多。我也检查了 SO 和 Google - 似乎找不到问题/情况的提及。
单元测试使用的是固定装置,而不是数据的真实数据库。
非常感谢任何帮助/指针!
J
【问题讨论】:
标签: mysql unit-testing cakephp stored-procedures
重载 Fixture 的 create() 方法。不要忘记调用 parent 的 create() 并删除 create procedure 语句中结束 END 之后的最终分隔符。
例如:
public function create($db){
parent::create($db);
// create stored procedures ...
$db->execute("CREATE PROCEDURE … <insert SQL here> … END", array('log' => false));
}
create() 方法可以在夹具表创建后执行您需要的任何语句。
我希望它会起作用
【讨论】:
DELIMITER $$ 开始存储过程并以DELIMITER ; 结束。这导致CakePHP 出现“语法错误或访问冲突:1064”。)