【发布时间】:2015-11-01 09:30:03
【问题描述】:
我试图模拟 PDO 对象以在使用 phpunit 编写一些测试时使用,但我发现它非常复杂并且找不到太多关于它的文档。 我创建了这个 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');
【问题讨论】:
标签: php mysql pdo mocking phpunit