微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

为PHPUnit模拟MySQL数据库

我正在尝试为我的Yii项目构建单元测试.

问题:MySQL数据库.我不希望每次运行测试时都运行MysqL数据库,因为它很慢,不可靠,也许某些团队成员没有设置等等.

似乎有一种方法可以在内存中使用sqlite DB并使用它,但是Yii生成sql似乎不像sql上那样在MysqL上运行.我收到很多错误.

简而言之:我想在内存中模拟MysqL数据库.

我怎样才能做到这一点?

将您的MysqL操作封装在 Data Access Object中.您不仅可以从业务逻辑中隐藏具有其他优点的sql,还可以在测试应用程序的其余部分时使用 mock DAO.模拟不需要数据库,并允许您验证业务逻辑是否正在对数据层进行正确调用.

这类似于Mchl的答案,但将模拟移动到一层.我发现模拟findUserByEmail()而不是各种MysqLi方法要容易得多.您可以将sql验证留给DAO测试,并在集成测试中针对数据库运行.

原文地址:https://www.jb51.cc/php/137379.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐