Как я могу начать работу с PHPUnit, где моей конструкции класса требуется предварительно сконфигурированное соединение БД? - PullRequest
2 голосов
/ 30 мая 2010

У меня есть класс, который использует много базы данных внутри, поэтому я построил конструктор с дескриптором $ db, который я должен передать ему.

Я только начинаю работать с PHPUnit, и я не уверен, как мне поступить и пропустить дескриптор базы данных через установку.

// Test code
public function setUp(/*do I pass a database handle through here, using a reference? aka &$db*/){
    $this->_acl = new acl;
}

// Construct from acl class
public function __construct(Zend_Db_Adapter_Abstract $db, $config = array()){

Ответы [ 2 ]

1 голос
/ 30 мая 2010

Вы бы сделали это так:

public class TestMyACL extends PHPUnit_Framework_TestCase {

    protected $adapter;
    protected $config;
    protected $myACL;

    protected function setUp() {
        $this->adapter  = // however you create a new ZendDbADapter
        $this->config   = // however you create a new config array
        $this->myACL    = new ACL($this->adapter, $this->config); // This is the System  Under Test (SUT)
    }

}

ИМХО, вам нужно работать над соглашениями об именах. См. Соглашения об именах Zend Framework , для начала. Примером может служить подчеркивание, ищите переменные в ссылке. Также имя класса.

1 голос
/ 30 мая 2010

Обычно вы можете обходиться без ссылки так же, как конструктор, потому что этот метод самый простой.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...