PHPUnit和DBUnit - 入门

时间:2010-08-25 18:34:02

标签: php phpunit dbunit

有没有人有关于如何开始在我的PHPUNit测试中添加DBUnit层的好的,有用的教程或书籍的链接?

我已尝试按照

中的代码进行操作
protected function getDatabaseTester()
{
    $pdo = new PDO('mysql:host=localhost;dbname=test', 'user', 'pass');
    $connection = new PHPUnit_Extensions_Database_DB_DefaultDatabaseConnection($pdo);
    $tester = new PHPUnit_Extensions_Database_DefaultTester($connection);
    $tester->setSetUpOperation(PHPUnit_Extensions_Database_Operation_Factory::CLEAN_INSERT());
    $tester->setTearDownOperation(PHPUnit_Extensions_Database_Operation_Factory::NONE());
    /*
    * the next line fails with the error

    PHP Fatal error:  __autoload(): Failed opening required 'PHPUnit_Extensions_Database_DataSet_FlatXMLDataSet.php' (include_path= *** 

    */
    $tester->setDataSet(new PHPUnit_Extensions_Database_DataSet_FlatXMLDataSet(dirname(__FILE__).'/../../../files/xml_database_export.xml'));
    return $tester;
}

XML是通过 mysqldump 命令创建的。我很乐意使用CSV,甚至是内存中的数组(无论有效)

不幸的是,我似乎无法启动此系统。

1 个答案:

答案 0 :(得分:9)

PHPUnit手册中有一章数据库测试:

和B. Eberlei使用PHPUnit进行数据库测试的终极指南

PHPUnit的作者塞巴斯蒂安·贝格曼(Sebastian Bergmann)也有一篇关于这个主题的博客文章(2008年):

Mike Lively的一些更老的博客文章,DbUnit扩展的作者可以在

找到

更新的教程(2010年)将出现在Matthew Turland的博客中:

您还可以访问#phpunit on Freenode IRC获取官方支持。