簡體   English   中英

如何在CakePHP中打開瀏覽器以使用DBUnit進行測試?

[英]How to open browser for testing with DBUnit in CakePHP?

我正在使用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繼承的)

有任何想法嗎? 謝謝

最后我的解決方案(也許以后可以幫助別人):

最后,我創建了一個bash腳本,然后執行UI測試和DB測試。 我還必須修改數據庫類,以便:

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

因此,現在它從當前數據庫獲取數據集。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM