PHPUnit与DBUnit:初始夹具无法设置

时间:2013-06-22 13:14:51

标签: 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()在出错时不会抛出任何异常。所以现在我不知道为什么它不起作用:(

1 个答案:

答案 0 :(得分:8)

已解决:事实证明,没有调用getDataSet(),因为我已经覆盖setUp()并且没有意识到我应该从overriden方法体中调用parent :: setUp()。

所以结论是:如果你重写方法setUp(),你总是要调用parent :: setUp()。