【发布时间】:2016-05-05 20:36:33
【问题描述】:
在我的单元测试中,我使用以下 getDataSet 方法来设置数据库。测试类扩展自 PHPUnit_Extensions_Database_TestCase
看起来框架没有在每次测试之前删除并重新插入行。我有这种感觉的原因是,当我更改某些测试的顺序时,我的测试通过了,而这绝不应该发生。
那么任何人都可以建议我做错了什么......或者我应该在哪里进一步了解以获得更多洞察力?
另外,我不得不使用复合数据集,因为一些旧的灯具是 xml 格式,而新的灯具是数组格式。虽然这个不需要 xml 固定装置。
public function getDataSet()
{
$compositeDs = new PHPUnit_Extensions_Database_DataSet_CompositeDataSet();
/** @var PHPUnit_Extensions_Database_DataSet_FlatXmlDataSet $ds */
$arrayDS = new ArrayDataSet([
__DIR__ . '/seed-data/companies.php',
]);
$compositeDs->addDataSet($arrayDS);
return $compositeDs;
}
可能是因为我保存了 pdo 连接并重复使用它吗?如下
final public function getConnection()
{
if ($this->conn === null) {
if (self::$pdo == null) {
self::$pdo = new PDO($GLOBALS['DB_DSN'], $GLOBALS['DB_USER'], $GLOBALS['DB_PASSWD']);
}
$this->conn = $this->createDefaultDBConnection(self::$pdo, $GLOBALS['DB_DBNAME']);
}
return $this->conn;
}
【问题讨论】:
标签: php unit-testing phpunit