gpt4 book ai didi

php - 如何使用 PHP SimpleTest 框架设置数据库测试

转载 作者:可可西里 更新时间:2023-11-01 13:23:44 25 4
gpt4 key购买 nike

我正在使用 SimpleTest,一个基于 PHP 的单元测试框架。我正在测试将处理从数据库存储和检索网站评论的新代码。我不知道如何构建项目来测试数据库访问代码。

我正在寻找有关在 PHP 应用程序中测试数据库代码的最佳实践的任何建议。例子真的很棒。进一步阅读的网站很棒。

谢谢你。 :)

最佳答案

这是一个老问题,但我想我会添加一些我们在这方面的具体经验。

其他海报在技术上是正确的,这是一种集成测试形式,但从我的角度来看,MySQL 中的逻辑通常太多,无法在单元测试中删除。如果您像我们一样,拥有严重依赖 MySQL 的大型复杂服务(每个服务通常有多个表),那么拥有一个包含测试查询逻辑的健壮测试框架真的很方便。我们在单元测试中模拟了很多依赖项,但没有模拟 MySQL。

我们有一组包装 simpletest 的类来提供此功能。它的工作原理是这样的:

  • 创建每个数据库表的说明存储在 tests/etc/schemas/table.sql 的文件中。它包含模式数据以及测试希望找到的所有固定数据的插入。
  • 每个需要数据库的测试都会扩展一个 Test_DbCase 类,该类提供构建表的功能。
  • 引导类负责在构造和析构时创建和删除数据库。
  • 在运行时,测试在setUp方法中调用loadTables('foo', 'bar')来执行foo.sql中的sql命令bar.sql.
  • 针对固定数据运行测试..其余的是显而易见的。

我们拥有的另一个工具是 bash 脚本,它可以更轻松地创建 table.sql 文件。这真的很方便,否则我们将手动编写 SQL - 您可以使用一组现有的表,在 MySQL 中设置所有数据,然后将其导出以创建基本的测试文件。

这对我们来说非常有效,尽管我们最终不得不自己滚动很多。

关于php - 如何使用 PHP SimpleTest 框架设置数据库测试,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/175153/

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