Как открыть браузер для тестирования с помощью DBUnit в CakePHP?

Я использую CakePHP и DBUnit для тестирования базы данных. Чего я хотел бы добиться, так это проверить, правильно ли форма, которую я отправил на веб-сайт, вставляет данные в БД. Теперь у меня есть много тестов пользовательского интерфейса, где я тестирую саму страницу, но у меня есть только это небольшое количество тестов БД:

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

Как я делал в тестах пользовательского интерфейса, но это не работает (потому что этот класс унаследован от PHPUnit_Extensions_Database_TestCase, а не от PHPUnit_Extensions_SeleniumTestCase)

Любые идеи? Спасибо


person zdtorok    schedule 14.04.2014    source источник


Ответы (1)


Мое решение в конце (может быть, это поможет кому-то позже):

В конце я создал сценарий bash и после этого выполнил тест пользовательского интерфейса и тест БД. Также мне пришлось изменить класс БД так, чтобы:

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

Итак, теперь он получает набор данных из текущей БД.

person zdtorok    schedule 15.04.2014