Я новичок в Zend и испытываю некоторые трудности с созданием модульных тестов. Я сократил его до минимального тестового класса, который все еще воспроизводит проблему в надежде, что я делаю что-то глупое:
class UserRegistrationsTest extends PHPUnit_Framework_TestCase
{
защищенный $ db;
публичная функция __construct ($ name = NULL) {parent :: __ construct ($ name);
$ this-> db = Zend_Db :: factory ('Pdo_Mysql', array ('host' => '127.0.0.1', 'username' => 'root', 'password' => 'xxxxxxxx', 'dbname' = > 'testingdb'));
Zend_Db_Table_Abstract :: setDefaultAdapter ($ this-> db); }
общедоступная функция testName () {$ users = new Users (); $ select = $ users-> select () -> где ('regCode =?', 'deadbeef'); $ row = $ users-> fetchRow ($ select); }
}
Итак, это упрощенный тест. У меня есть настроенная база данных (которая правильно подключается), в которой есть данные. Есть запись с regCode, установленным на 'deadbeef', а также поля для электронной почты, regDate и affiliate:
CREATE TABLE testingdb.users (
regCode varchar(16) NOT NULL,
email varchar(150) NOT NULL,
regDate datetime NOT NULL,
affiliate int(10) unsigned DEFAULT NULL,
PRIMARY KEY (regCode))
У меня есть класс под названием Users.php, который настолько прост, насколько это возможно:
class Users extends Zend_Db_Table_Abstract {
protected $_name = 'users';
}
Моя проблема в том, что я могу вставить в базу данных нормально, но любые запросы возвращают нечетные результаты. Приведенный выше fetchRow генерирует правильный SQL, но возвращенная строка является мусором - он возвращает строку, содержащую regCode, адрес электронной почты, без столбца regDate вообще, тогда партнер присутствует, но столбец называется «пользователи», а не «партнер».
Я пробовал это с другими таблицами, и ни одна из них не работает - некоторые даже возвращают имя базы данных в виде заголовка столбца, а также имя таблицы в качестве столбца.
Следует отметить, что если я не использую это в тесте, все работает нормально. Тот же самый код и db в правильном приложении работают отлично, но работают как phpUnit Test, и все становится ужасно :-(
Любые советы приветствуются
Ура, Брин