gpt4 book ai didi

mysql - 为 PHPUnit 模拟 MySQL DB

转载 作者:可可西里 更新时间:2023-11-01 06:33:20 25 4
gpt4 key购买 nike

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

问题:MySQL 数据库。我不想每次运行测试时都必须运行 MySQL 数据库,因为它速度慢、不可靠,也许有些团队成员没有设置它等等。

似乎有一种方法可以在内存中创建 SQLite 数据库并使用它,但是 Yii 生成的 SQL 似乎无法像在 MySQL 上那样在 SQLite 上运行。我收到大量错误。

简而言之:我想在内存中模拟一个 MySQL 数据库。

我该怎么做?

最佳答案

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

这与 Mchl 的回答类似,但将模拟上移了一层。我发现模拟 findUserByEmail() 而不是各种 mysqli 方法要容易得多。您可以将 SQL 验证留给 DAO 测试,并在集成测试中针对数据库运行。

关于mysql - 为 PHPUnit 模拟 MySQL DB,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7014662/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com