【问题标题】:How to open browser for testing with DBUnit in CakePHP?如何在 CakePHP 中打开浏览器以使用 DBUnit 进行测试?
【发布时间】:2014-04-14 11:46:28
【问题描述】:

我正在使用 CakePHP 和 DBUnit 进行数据库测试。我想要实现的是测试我在网站上提交的表单是否将数据正确插入数据库。我现在有很多 UI 测试,我测试页面本身,但我只有这么少量的 DB 测试:

<?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'));
    }

}
?>

我尝试过这样做:

$this->setBrowser('*firefox');
$this->setBrowserUrl('url');
$this->open('link');

就像我在 UI 测试中所做的那样,但它不起作用(因为这个类是从 PHPUnit_Extensions_Database_TestCase 继承的,而不是从 PHPUnit_Extensions_SeleniumTestCase 继承的)

有什么想法吗? 谢谢

【问题讨论】:

    标签: php mysql cakephp testing dbunit


    【解决方案1】:

    最后我的解决方案(也许它可以帮助以后的人):

    最后我创建了一个 bash 脚本,然后执行一个 UI 测试和一个 DB 测试。我还必须修改 DB 类:

    public function getDataSet() {
        $cascadeTruncates = true;
        return $this->getConnection()->createDataSet();
    }
    

    所以现在它从当前数据库中获取数据集。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-08-03
      • 1970-01-01
      • 2011-05-25
      • 2012-12-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-04-12
      相关资源
      最近更新 更多