为PHPUnit模拟MySQL数据库
发布时间:2020-12-13 13:26:17 所属栏目:PHP教程 来源:网络整理
导读:我正在尝试为我的Yii项目构建单元测试. 问题:MySQL数据库.我不希望每次运行测试时都运行MySQL数据库,因为它很慢,不可靠,也许某些团队成员没有设置等等. 似乎有一种方法可以在内存中使用SQLite DB并使用它,但是Yii生成的SQL似乎不像SQL上那样在MySQL上运行.
我正在尝试为我的Yii项目构建单元测试.
问题:MySQL数据库.我不希望每次运行测试时都运行MySQL数据库,因为它很慢,不可靠,也许某些团队成员没有设置等等. 似乎有一种方法可以在内存中使用SQLite DB并使用它,但是Yii生成的SQL似乎不像SQL上那样在MySQL上运行.我收到很多错误. 简而言之:我想在内存中模拟MySQL数据库. 我怎样才能做到这一点?
将您的MySQL操作封装在
Data Access Object中.您不仅可以从业务逻辑中隐藏具有其他优点的SQL,还可以在测试应用程序的其余部分时使用
mock DAO.模拟不需要数据库,并允许您验证业务逻辑是否正在对数据层进行正确调用.
这类似于Mchl的答案,但将模拟移动到一层.我发现模拟findUserByEmail()而不是各种mysqli方法要容易得多.您可以将SQL验证留给DAO测试,并在集成测试中针对数据库运行. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |