【问题标题】:Php, virtual database server for testingphp,用于测试的虚拟数据库服务器
【发布时间】:2014-08-02 20:05:38
【问题描述】:

所以,我需要编写依赖于数据库的测试。例如:

function testme()
{
    $record = mysql_fetch_row(mysql_query('SELECT COUNT(*) FROM db'));
    return $record[0] + 1;
}

但这需要一个真实的数据库、连接等。当然,我可以创建一个“测试”数据库并设置连接——但是为什么需要一个“真实”的数据库呢?我也必须填写测试数据库,不是更容易吗? Sy,我只是传递一个包含记录的数组。 编辑:当然,我知道这可能很“棘手”,该引擎也应该模拟 JOIN-s,等等

【问题讨论】:

    标签: php mysql database unit-testing


    【解决方案1】:

    当然,您可以使用数组...但无论如何您都需要以某种方式填充它。这不会让您测试您的数据库,这是该过程的关键部分。

    如果您想在出现问题时使用数组来测试其余代码以缩小选择范围,那很好,但下一步应该是填充您的数据库并使用它进行测试。

    【讨论】:

    • 是的,但不是每个人都理解我的问题(那些投票给我的人)。在 Java 中,有 ODBC 驱动程序等。理想情况下,最好使用虚拟数据库服务器,而不是克隆数据库
    • 我不太明白你想用它来完成什么。 “假”数据库只是另一个数据库。还是您的意思与此不同?
    • 一个假的“sql server”。想象一下没有安装 MySQL 的代码
    • 我明白了。这有点奇怪,因为就像我说的那样,您需要以任何一种方式填充数据。如果您真的需要不同的方式,您可以使用将您的假数据存储在 Excel 电子表格中,然后使用 sourceforge.net/projects/phpexcelreaderphpexcel.codeplex.com 读取该数据。您还可以为您的数据制作一个 CSV 文件(逗号分隔值,PHP 可以轻松打开:codedevelopr.com/articles/reading-csv-files-into-php-array 这些操作过程仍然需要努力,但这些选项比设置 MySQL 的工作量要少。
    猜你喜欢
    • 2012-12-01
    • 2016-04-27
    • 2016-02-17
    • 1970-01-01
    • 1970-01-01
    • 2017-10-27
    • 2019-07-22
    • 1970-01-01
    • 2020-07-25
    相关资源
    最近更新 更多