我想在使用phpunit编写一些测试时,模拟PDO对象的使用,但我发现这相当复杂,而且找不到太多相关文档。
我创建了这个XML结构:
<dataset>
<table name="providers">
<column>id</column>
<column>name</column>
<column>description</column>
<row>
<value>1</value>
<value>provdier_1</value>
<value>phpunit first provider</value>
</row>
</table>
</dataset>
现在我想查询providers
表并获取数据,但是我无法弄清楚如何做到这一点。
我开始模拟PDO
对象,但我不明白应该如何使用它以及如何在getConnection()
方法中使用它。
我的第一次尝试,我猜想离正确的方式相当远,因为我在这里非常迷失,看起来像这样:
class AdProvidersTest extends PHPUnit_Extensions_Database_TestCase
{
public function getConnection()
{
$dsn = 'mydb';
$user = '';
$password = '';
$pdo = $this->getMockBuilder('PDOMock')
->getMock();
return $this->createDefaultDBConnection($pdo, 'adserverTesting');
}
public function getDataSet()
{
return $this->createXMLDataSet('adserverTesting.xml');
}
}
我该如何使连接与'adserverTesting.xml'
文件交互,并使用以下代码查询它:
$ds = new PHPUnit_Extensions_Database_DataSet_QueryDataSet($this->getConnection());
$ds->addTable('adserverTesting', 'SELECT * FROM providers');