Zend + Doctrine + PHPUnit = Нет открытого соединения - PullRequest
1 голос
/ 13 декабря 2011

Я пытаюсь создать модульный тест с phpunit для Zend, используя Doctrine ORM. Когда я пытаюсь создать тестовый класс, расширяющий Zend_Test_PHPUnit_DatabaseTestCase, я получаю сообщение при выполнении PHPUnit: «Нет открытого соединения»

Вот полный источник:

<?php

class AclTest extends Zend_Test_PHPUnit_DatabaseTestCase
{
    private $_userAdmin;

    public function setUp()
    {
        $this->bootstrap = new Zend_Application(APPLICATION_ENV, APPLICATION_PATH . '/configs/application.ini');

        $this->_userAdmin = Model_UserTable::getInstance()->findOneByUsername('admin');

        parent::setUp();
    }

    protected function getConnection()
    {
        $pdo = new PDO('mysql:host=localhost;dbname=mydbname', 'root', 'pwd');
        return $this->createDefaultDBConnection($pdo, 'testdb');
    }

    protected function getDataSet()
    {
        return null;
    }


    public function testHasProfilPermission()
    {
        //execute some tests

    }
}

Что ты думаешь?

Спасибо

1 Ответ

0 голосов
/ 04 марта 2012

Попробуйте, пожалуйста:

class AclTest extends Zend_Test_PHPUnit_DatabaseTestCase
{
    private $_userAdmin;
    /** @var PDO **/
    protected $pdo;

    public function __construct()
    {
        $this->pdo = new PDO('mysql:host=localhost;dbname=mydbname', 'root', 'pwd');
    }

    public function setUp()
    {
        $this->bootstrap = new Zend_Application(APPLICATION_ENV, APPLICATION_PATH . '/configs/application.ini');

        $this->_userAdmin = Model_UserTable::getInstance()->findOneByUsername('admin');

        parent::setUp();
    }

    protected function getConnection()
    {
        return $this->createDefaultDBConnection($this->pdo, 'testdb');
    }
}
...