如何在CakePHP中使用DBUnit打开浏览器进行测试?
我正在使用CakePHP和DBUnit进行数据库测试。我想实现的是测试我在网站上提交的表单是否正确地将数据插入数据库。我现在有很多UI测试,其中我测试了页面本身,但我只有少量的DB测试:如何在CakePHP中使用DBUnit打开浏览器进行测试?,php,mysql,cakephp,testing,dbunit,Php,Mysql,Cakephp,Testing,Dbunit,我正在使用CakePHP和DBUnit进行数据库测试。我想实现的是测试我在网站上提交的表单是否正确地将数据插入数据库。我现在有很多UI测试,其中我测试了页面本身,但我只有少量的DB测试: <?php class testSchema extends PHPUnit_Extensions_Database_TestCase { /* ** @return PHPUnit_Extensions_Database_DB_IDatabaseConnection */
<?php
class testSchema extends PHPUnit_Extensions_Database_TestCase {
/*
** @return PHPUnit_Extensions_Database_DB_IDatabaseConnection
*/
public function getConnection() {
$pdo = new PDO('mysql:dbname=job_manager;host=localhost','root','toor');
$pdo->exec("set foreign_key_checks=0");
return $this->createDefaultDBConnection($pdo, 'job_manager');
}
/*
** @return PHPUnit_Extensions_Database_DataSet_IDataSet
*/
public function getDataSet() {
$cascadeTruncates = true;
return $this->createMySQLXMLDataSet(dirname(__FILE__).'/default.xml');
}
public function testRowCounts() {
$this->assertEquals(3, $this->getConnection()->getRowCount('jobs'));
$this->assertEquals(1, $this->getConnection()->getRowCount('machines'));
$this->assertEquals(4, $this->getConnection()->getRowCount('users'));
}
}
?>
就像我在UI测试中所做的那样,但它不起作用(因为这个类是从PHPUnit_Extensions_Database_TestCase继承的,而不是从PHPUnit_Extensions_SeleniumTestCase继承的)
有什么想法吗?
谢谢最后我的解决方案(也许它可以帮助以后的人):
最后,我创建了一个bash脚本,然后执行UI测试和DB测试。我还必须修改DB类,以便:
public function getDataSet() {
$cascadeTruncates = true;
return $this->getConnection()->createDataSet();
}
现在它从当前数据库中获取数据集
public function getDataSet() {
$cascadeTruncates = true;
return $this->getConnection()->createDataSet();
}