带有 DBUnit : initial fixture fails to set up 的 PHPUnit

标签 php unit-testing phpunit dbunit

我已经为我的模块之一创建了一个数据库测试类。当我尝试运行测试用例时,未设置初始夹具 - 测试数据库中的所有表都是空的。这是我的 getDataSet() 方法:

    /**
 * @return PHPUnit_Extensions_Database_DataSet_IDataSet
 */
public function getDataSet()
{
    return $this->createFlatXMLDataSet(dirname(__FILE__).'/dataSets/initial.xml');
}

我发现调用了 getDataSet() 方法,因为当我在其中创建语法错误时,测试执行失败。但是当我在文件 initial.xml 中创建错误时,没有任何反应。似乎文件 initial.xml 根本没有被解析!

文件的路径应该没问题,但我注意到当我输入无效路径时,同样没有任何反应。显然,当出现问题时,方法 createFlatXMLDataSet() 不会抛出任何异常。所以现在我不知道为什么它不起作用:(

最佳答案

已解决:原来 getDataSet() 没有被调用,因为我已经覆盖了 setUp() 并且没有意识到我应该从被覆盖的方法体中调用 parent::setUp()。

所以结论是:如果你要覆盖方法 setUp(),你总是必须调用 parent::setUp()。

关于带有 DBUnit : initial fixture fails to set up 的 PHPUnit,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17251164/

相关文章:

php - PHP 上的 AES256 字符串加密和 iPhone 上的解密

php - WP 二十二导航显示

javascript - 为什么 Javascript 没有加密我的表单?

unit-testing - 如何模拟具有多个 Ref 参数的方法

c++ - Boost 单元测试编译通过 Eclipse 失败

php - 如何测试 PHPUnit 模拟对象中的第二个参数

laravel - laravel dusk 的代码覆盖率

javascript - 如何获取客户端帖子大小?

php - Laravel 多数据库 PHPUnit

javascript - 如何在 JavaScript 中对回调逻辑进行单元测试?