PHPUnit:是否可以将包含相同表的数据集添加到复合数据集中?
根据PHPUnit文件(http://www.phpunit.de/manual/3.7/en/database.html#understanding-数据集和数据表),我们可以将包含同一个表的数据集添加到复合数据集中,并且“当多个数据集包含同一个表时,将按指定顺序追加行”。但是,在PHPUnit_Extensions_Database_DataSet_compositedastatset::addDataSet()方法中,它有以下代码:PHPUnit:是否可以将包含相同表的数据集添加到复合数据集中?,php,unit-testing,phpunit,Php,Unit Testing,Phpunit,根据PHPUnit文件(http://www.phpunit.de/manual/3.7/en/database.html#understanding-数据集和数据表),我们可以将包含同一个表的数据集添加到复合数据集中,并且“当多个数据集包含同一个表时,将按指定顺序追加行”。但是,在PHPUnit_Extensions_Database_DataSet_compositedastatset::addDataSet()方法中,它有以下代码: foreach ($dataSet->ge
foreach ($dataSet->getTableNames() as $tableName)
{
if (in_array($tableName, $this->getTableNames()))
{
throw new InvalidArgumentException("DataSet contains a table that already exists: {$tableName}");
}
}
$this->dataSets[] = $dataSet;
我是否遗漏了某些内容或文档不正确???为了添加涉及同一表的多个数据集,您需要扩展CompositeDataSet类并将addDataSet方法重写为以下内容:
public function addDataSet(PHPUnit_Extensions_Database_DataSet_IDataSet $dataSet)
{
foreach ($dataSet->getTableNames() as $tableName)
{
if (in_array($tableName, $this->getTableNames()))
{
$this->getTable($tableName)->addTableRows($dataSet->getTable($tableName));
return;
}
}
$this->dataSets[] = $dataSet;
}